/* =========================================================
   0
   ========================================================= */

:root {
  --c-ink: #0d1117;
  --c-dark: #161d2a;
  --c-green:  #8EA85A;
  --c-green-d: #6E8445;
  --c-green-l: #7D9646;
  --c-blue: #1d4ed8;
  --c-blue-d: #1e3a8a;
  --c-bg: #F3F6F1;
  --c-white: #FFFFFF;
  --c-muted: rgba(13,17,23,.54);
  --c-border: rgba(13,17,23,.07);
  --f-display: 'Manrope', system-ui, -apple-system, sans-serif;
  --f-body: 'Manrope', system-ui, -apple-system, sans-serif;
  --t-xs: 11px;
  --t-sm: 13.5px;
  --t-base: 15.5px;
  --t-md: 17px;
  --t-lg: clamp(20px, 2.2vw, 26px);
  --t-xl: clamp(26px, 3.2vw, 40px);
  --t-2xl: clamp(36px, 5.5vw, 64px);
  --lh-tight: 1.08;
  --lh-head: 1.14;
  --lh-body: 1.68;
  --ls-tight: -.025em;
  --ls-base: -.01em;
  --ls-label: .13em;
  --sp-xs: 8px;
  --sp-sm: 14px;
  --sp-md: 24px;
  --sp-lg: 40px;
  --sp-xl: clamp(52px, 7vw, 84px);
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --sh-sm: 0 1px 4px rgba(17,24,39,.05), 0 4px 16px rgba(17,24,39,.05);
  --sh-md: 0 2px 8px rgba(17,24,39,.07), 0 12px 36px rgba(17,24,39,.07);
  --sh-lg: 0 4px 16px rgba(17,24,39,.09), 0 20px 56px rgba(17,24,39,.09);
  --max-w: 1160px;
}

@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700&display=swap");
.v-hero, .v-trust, .v-services, .v-benefits, .v-steps,
.v-numbers, .v-cta, .v-faq, .v-video, .v-quotes,
.v-contact, .service-hero, .service-columns,
.service-highlight, .service-cta {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: var(--f-body);
  color: var(--c-ink);
}

.v-wrap {
  width: min(var(--max-w), 100% - 40px);
  margin-left: auto;
  margin-right: auto;
}

.v-section {
  padding: var(--sp-xl) 0;
}

.v-h1 {
  font-family: var(--f-display);
  font-size: var(--t-2xl);
  font-weight: 400;
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
}

.v-h2 {
  font-family: var(--f-display);
  font-size: var(--t-xl);
  font-weight: 400;
  line-height: var(--lh-head);
  letter-spacing: var(--ls-tight);
}

.v-lead {
  font-size: var(--t-md);
  color: var(--c-muted);
  line-height: var(--lh-body);
  max-width: 52ch;
}

.v-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-body);
  font-size: 14.5px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: var(--r-sm);
  border: none;
  cursor: pointer;
  text-decoration: none !important;
  letter-spacing: .01em;
  white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, filter .18s ease;
}

.v-btn:hover {
  transform: translateY(-2px);
}

.v-btn--primary {
  background: var(--c-blue);
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(29,78,216,.28);
}

.v-btn--primary:hover {
  background: var(--c-blue-d);
  box-shadow: 0 8px 28px rgba(29,78,216,.36);
}

.v-btn--ghost {
  background: rgba(255,255,255,.10);
  color: #fff !important;
  border: 1.5px solid rgba(255,255,255,.24);
}

.v-btn--ghost:hover {
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.42);
}

.v-btn--white {
  background: #fff;
  color: var(--c-blue-d) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.14);
}

.v-btn--white:hover {
  box-shadow: 0 8px 26px rgba(0,0,0,.20);
}

.v-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

@keyframes vUp {
  from {
    opacity: 0;
    transform: translateY(22px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}

@keyframes vFade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }

}

.v-form-wrap .wpforms-container input[type="text"],
.v-form-wrap .wpforms-container input[type="tel"],
.v-form-wrap .wpforms-container input[type="email"],
.v-form-wrap .wpforms-container select,
.v-form-wrap .wpforms-container textarea {
  background: rgba(255,255,255,.94) !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: var(--r-sm) !important;
  padding: 11px 14px !important;
  color: #111 !important;
  font-size: var(--t-base) !important;
  box-shadow: none !important;
}

.v-form-wrap .wpforms-container .wpforms-submit {
  width: 100% !important;
  border-radius: var(--r-sm) !important;
  padding: 13px 18px !important;
  font-weight: 700 !important;
  font-size: var(--t-base) !important;
  border: 0 !important;
  color: #fff !important;
  background: var(--c-blue) !important;
  box-shadow: 0 6px 18px rgba(29,78,216,.28) !important;
  cursor: pointer !important;
  transition: filter .18s ease !important;
}

.v-form-wrap .wpforms-container .wpforms-submit:hover {
  filter: brightness(1.08) !important;
}

.v-form-wrap--light .wpforms-container label {
  color: var(--c-ink) !important;
}

.v-hero__bg {
  position: absolute;
  inset: 0;
  background-image: var(--hero-img);
  background-size: cover;
  background-position: center;
  animation: vZoom 20s ease-out forwards;
}

@keyframes vZoom {
  from {
    transform: scale(1.05);
  }

  to {
    transform: scale(1.00);
  }

}

.v-hero__overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 0% 105%, rgba(79,111,47,.20), transparent 50%);
}

.v-hero__label::before {
  content: none;
  display: none;
}

.v-hero__sep {
  opacity: .24;
  margin: 0 2px;
}

.v-hero__ctas {
  opacity: 0;
  animation: vUp .9s .56s both;
}

.v-hero__bullets {
  list-style: none;
  padding: 0;
  margin: 18px 0 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
  opacity: 0;
  animation: vUp .9s .68s both;
}

.v-hero__bullets li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 14.5px;
  color: rgba(255,255,255,.78);
  line-height: 1.52;
}

.v-hero__bullets li::before {
  content: "";
  width: 18px;
  min-width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(184,216,130,.14)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='7'%3E%3Cpath d='M1 3.5l2.5 2.5 4.5-5' stroke='%23b8d882' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center/9px no-repeat;
  border: 1px solid rgba(184,216,130,.26);
  margin-top: 1px;
}

.v-hero__stats-inner {
  width: min(var(--max-w), 100% - 40px);
  margin: 0 auto;
  display: flex;
}

.v-hero__stat {
  padding: 18px 36px 18px 0;
  margin-right: 36px;
  border-right: 1px solid rgba(255,255,255,.09);
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.v-hero__stat:last-child {
  border-right: none;
  margin-right: 0;
}

.v-hero__stat-n {
  font-family: var(--f-display);
  font-size: 26px;
  font-weight: 400;
  color: #fff;
  line-height: 1;
  letter-spacing: var(--ls-tight);
}

.v-hero__stat-l {
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.36);
}

.v-hero--compact {
  min-height: var(--hero-min-h, clamp(360px, 44vw, 500px));
}

.v-hero--compact .v-hero__inner {
  padding: 70px 0 90px;
}

.v-hero--compact .v-hero__label {
  font-size: clamp(13px, 1.05vw, 15px);
  gap: 10px;
}

.v-hero--compact .v-hero__brand {
  font-size: 1.08em;
}

.v-hero--compact .v-hero__tagline {
  font-size: 1em;
}

.v-hero--compact .v-hero__title {
  max-width: 980px;
}

.v-hero--compact .v-hero__lead {
  max-width: 760px;
}

.v-hero--glass .v-hero__inner {
  padding: clamp(22px, 3vw, 38px);
  display: flex;
  align-items: center;
  min-height: inherit;
}

.v-hero__glass {
  width: min(680px, 100%);
  padding: clamp(20px, 2.6vw, 32px);
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: calc(var(--r-xl) - 6px);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  box-shadow: 0 20px 60px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.22);
}

.v-hero--glass .v-hero__title {
  font-size: clamp(24px, 2.8vw, 40px);
  max-width: 100%;
  color: rgba(255,255,255,.94);
  text-shadow: 0 8px 24px rgba(0,0,0,.28);
}

.v-hero--glass .v-hero__lead {
  font-size: 15px;
  max-width: 100%;
  color: rgba(255,255,255,.74);
}

.v-trust__title em {
  font-style: italic;
  color: var(--c-green);
}

.v-trust__item:nth-child(odd) {
  padding-right: 52px;
  border-right: 1px solid var(--c-border);
}

.v-trust__item:nth-child(even) {
  padding-left: 52px;
  padding-right: 0;
}

.v-trust__item:hover::before {
  opacity: .45;
}

.v-trust__item:hover .v-trust__name {
  color: var(--c-green-d);
}

.v-services__title em {
  font-style: italic;
  color: var(--c-green);
}

.v-services__lead {
  font-size: var(--t-md);
  color: var(--c-muted);
  max-width: 52ch;
  line-height: var(--lh-body);
}

.v-services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.v-card__hit {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.v-card__link::after {
  content: " →";
}

.v-card:hover .v-card__link {
  gap: 10px;
  color: var(--c-green) !important;
}

[data-card="IVLP"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/air-condition_17725688.png");
}

[data-card="ILP"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/air-conditioning_16989481.png");
}

[data-card="MLP"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/geothermal_15865992.png");
}

[data-card="KVR"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/bathroom_13512711.png");
}

[data-card="LVR"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/battery_13512496.png");
}

[data-card="VVV"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/water-faucet_9551317.png");
}

[data-card="HY"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/check_14231314.png");
}

[data-card="Paivystys"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/repair_5071684.png");
}

[data-card="Arviot"]::before {
  background-image: url("https://varmea.fi/wp-content/uploads/2026/03/writing_8391902.png");
}

.v-card--cta .v-card__title {
  color: #fff;
}

.v-card--cta .v-card__desc {
  color: rgba(255,255,255,.78);
}

.v-card--cta .v-card__link {
  color: rgba(255,255,255,.72) !important;
}

.v-card--cta::before {
  display: none;
}

.v-benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 16px;
}

.v-benefits__item {
  position: relative;
  padding: 22px 22px 20px;
  border-radius: var(--r-lg);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
  overflow: hidden;
}

.v-benefits__item::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--c-blue-d), var(--c-green));
  opacity: .65;
}

.v-benefits__title {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: var(--ls-base);
  color: var(--c-ink);
  margin: 10px 0 7px;
}

.v-benefits__desc {
  font-size: 14px;
  color: var(--c-muted);
  line-height: 1.62;
  margin: 0;
}

.v-steps--process .v-steps__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  position: relative;
  gap: 0;
}

.v-steps--process .v-step {
  padding: 0 40px 0 0;
  display: flex;
  flex-direction: column;
  background: none;
  border: none;
  box-shadow: none;
}

.v-steps--process .v-step:last-child {
  padding-right: 0;
}

.v-steps--process .v-step:hover .v-step__num {
  transform: translateY(-4px) scale(1.06);
  border-color: var(--c-green);
  box-shadow: 0 0 0 7px var(--c-bg),
    0 0 0 8px rgba(79,111,47,.14),
    0 16px 36px rgba(79,111,47,.20);
}

.v-step__num::after {
  content: "";
  position: absolute;
  bottom: -36px;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 28px;
  background: linear-gradient(180deg, rgba(79,111,47,.25), transparent);
}

.v-steps--grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}

.v-steps--grid .v-step {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 14px;
  border-radius: var(--r-md);
  background: var(--c-bg);
  border: 1px solid var(--c-border);
}

.v-steps--grid .v-step__num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
  font-family: var(--f-body);
  color: var(--c-blue);
  background: rgba(29,78,216,.08);
  border: 1px solid rgba(29,78,216,.16);
  flex-shrink: 0;
  margin-bottom: 0;
  box-shadow: none;
}

.v-steps--grid .v-step__title {
  font-size: 13.5px;
  display: block;
}

.v-steps--grid .v-step__sub {
  font-size: 12px;
  color: var(--c-muted);
  margin-top: 2px;
  display: block;
}

.v-numbers {
  background: var(--c-dark);
  padding: clamp(48px, 6vw, 72px) 0;
  border-top: 1px solid rgba(255,255,255,.04);
}

.v-numbers__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.05);
  border-radius: var(--r-lg);
  overflow: hidden;
}

.v-numbers__item {
  background: rgba(255,255,255,.02);
  padding: 34px 28px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: background .2s;
}

.v-numbers__item:hover {
  background: rgba(255,255,255,.05);
}

.v-numbers__n {
  font-family: var(--f-display);
  font-size: clamp(34px, 4vw, 50px);
  font-weight: 400;
  color: #fff;
  line-height: 1;
  letter-spacing: var(--ls-tight);
}

.v-numbers__n em {
  font-style: italic;
  color: var(--c-green-l);
}

.v-numbers__label {
  font-size: var(--t-sm);
  font-weight: 600;
  color: rgba(255,255,255,.42);
  letter-spacing: .05em;
  text-transform: uppercase;
}

.v-numbers__sub {
  font-size: 12px;
  color: rgba(255,255,255,.26);
  line-height: 1.45;
}

.v-cta--image {
  background-image: var(--cta-img, var(--hero-img));
  background-size: cover;
  background-position: center;
  padding: var(--sp-xl) 0;
}

.v-cta--image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(94deg, rgba(10,14,23,.82) 0%, rgba(10,14,23,.52) 52%, rgba(10,14,23,.66));
  pointer-events: none;
}

.v-cta__inner {
  position: relative;
  z-index: 1;
  width: min(var(--max-w), 100% - 40px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 56px;
  align-items: start;
}

.v-cta__text {
  color: #fff;
}

.v-cta__list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 0 0 26px;
}

.v-cta__list li::before {
  content: "";
  width: 17px;
  min-width: 17px;
  height: 17px;
  border-radius: 50%;
  background: rgba(255,255,255,.20)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='7'%3E%3Cpath d='M1 3.5l2.5 2.5 4.5-5' stroke='%23fff' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center/9px no-repeat;
  border: 1px solid rgba(255,255,255,.30);
  margin-top: 1px;
}

.v-faq--card {
  padding: clamp(22px, 3vw, 36px);
  border-radius: var(--r-lg);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
  margin-top: 16px;
}

.v-faq--card.v-faq {
  border-top: none;
  padding-top: clamp(22px, 3vw, 36px);
}

.v-faq__item summary {
  cursor: pointer;
  font-size: 15.5px;
  font-weight: 600;
  color: var(--c-ink);
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  letter-spacing: var(--ls-base);
}

.v-faq__item summary::-webkit-details-marker {
  display: none;
}

.v-faq__item summary::after {
  content: "+";
  font-size: 22px;
  font-weight: 300;
  color: var(--c-green);
  flex-shrink: 0;
  transition: transform .22s ease;
  line-height: 1;
}

.v-faq__item[open] summary::after {
  transform: rotate(45deg);
}

.v-faq__answer {
  padding: 13px 0 3px;
  font-size: 15px;
  color: var(--c-muted);
  line-height: var(--lh-body);
  max-width: 62ch;
}

.v-video {
  margin-top: 16px;
  padding: clamp(22px, 3vw, 36px);
  border-radius: var(--r-lg);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}

.v-video__intro h2 {
  font-family: var(--f-display);
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  margin: 0 0 6px;
}

.v-video__intro p {
  font-size: 14.5px;
  color: var(--c-muted);
  margin: 0 0 18px;
}

.v-video__embed {
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--c-border);
  background: var(--c-dark);
}

.v-video__embed iframe,
.v-video__embed .wp-block-embed__wrapper {
  border-radius: var(--r-md) !important;
  overflow: hidden;
  display: block;
  width: 100% !important;
}

.v-quotes {
  margin-top: 16px;
  padding: clamp(22px, 3vw, 36px);
  border-radius: var(--r-lg);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}

.v-quotes__title {
  font-family: var(--f-display);
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  margin: 0 0 22px;
}

.v-quotes__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.v-quotes__item {
  margin: 0;
  padding: 20px;
  border-radius: var(--r-md);
  background: var(--c-bg);
  border: 1px solid var(--c-border);
}

.v-quotes__item blockquote {
  font-size: 14px;
  font-style: italic;
  color: var(--c-ink);
  line-height: 1.65;
  margin: 0 0 12px;
  quotes: none;
}

.v-quotes__item figcaption {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-muted);
  letter-spacing: .02em;
}

.v-contact {
  padding: var(--sp-xl) 0;
  border-top: 1px solid var(--c-border);
}

.v-contact__grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 22px;
}

.v-contact__panel {
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--r-xl);
  box-shadow: var(--sh-md);
  padding: 32px;
}

.v-contact__panel h2 {
  font-family: var(--f-display);
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  margin: 0 0 6px;
}

.v-contact__sub {
  font-size: var(--t-sm);
  color: var(--c-muted);
  margin: 0 0 22px;
}

.v-contact__lines {
  display: grid;
  gap: 14px;
  margin: 0 0 24px;
}

.v-contact__lines a {
  color: var(--c-blue) !important;
  font-weight: 600;
}

.v-contact__lines strong {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin-bottom: 3px;
}

.v-contact__lines span {
  font-size: 15.5px;
  color: var(--c-ink);
  font-weight: 500;
}

.v-contact__panel h3 {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: var(--ls-base);
  margin: 0 0 12px;
}

.v-contact__steps {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  counter-reset: steps;
}

.v-contact__steps li {
  counter-increment: steps;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14.5px;
  color: var(--c-muted);
  line-height: 1.55;
}

.v-contact__steps li::before {
  content: counter(steps);
  width: 24px;
  height: 24px;
  min-width: 24px;
  border-radius: 50%;
  background: rgba(79,111,47,.10);
  border: 1px solid rgba(79,111,47,.20);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: var(--c-green-d);
  margin-top: 1px;
}

.v-contact__panel--form {
  background: linear-gradient(165deg, #0f1729, #1a2540);
  border-color: rgba(255,255,255,.08);
  color: #fff;
}

.v-contact__panel--form h2 {
  color: #fff;
}

.v-contact__panel--form .v-contact__sub {
  color: rgba(255,255,255,.46);
}

.v-contact__fineprint {
  font-size: 12px;
  color: rgba(255,255,255,.28);
  margin-top: 12px;
  line-height: 1.55;
}

.service-hero {
  margin: 18px auto;
  max-width: var(--max-w);
  width: calc(100% - 40px);
  border-radius: var(--r-xl);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(135deg, rgba(29,78,216,.88), rgba(79,111,47,.82));
  box-shadow: var(--sh-lg);
}

.service-hero .hero-grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 32px;
  align-items: center;
  padding: 40px;
}

.service-hero h1 {
  font-family: var(--f-display);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 400;
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  color: #fff;
  margin: 0 0 14px;
}

.service-hero p {
  font-size: var(--t-base);
  color: rgba(255,255,255,.80);
  line-height: var(--lh-body);
  margin: 0;
  max-width: 60ch;
}

.service-hero .hero-image img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-md);
  display: block;
}

.service-columns {
  margin: 18px auto;
  max-width: var(--max-w);
  width: calc(100% - 40px);
  padding: 32px;
  border-radius: var(--r-xl);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}

.service-columns h2 {
  font-family: var(--f-display);
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  margin: 0 0 22px;
  color: var(--c-ink);
}

.service-columns .wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 18px !important;
  margin: 0 !important;
}

.service-columns .wp-block-column {
  margin: 0 !important;
  padding: 22px !important;
  border-radius: var(--r-lg);
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  display: flex;
  flex-direction: column;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.service-columns .wp-block-column:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-md);
  background: var(--c-white);
}

.service-columns h3 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: var(--ls-base);
  color: var(--c-ink);
  margin: 0 0 10px;
}

.service-columns p {
  font-size: 14px;
  color: var(--c-muted);
  line-height: 1.62;
  margin: 0 0 12px;
}

.service-columns p:last-child {
  margin-top: auto;
  margin-bottom: 0;
}

.service-link {
  font-weight: 600;
  font-size: 13.5px;
  color: var(--c-green-d) !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: gap .18s ease;
}

.service-link:hover {
  gap: 9px;
}

.service-highlight {
  margin: 18px auto;
  max-width: var(--max-w);
  width: calc(100% - 40px);
  padding: 32px;
  border-radius: var(--r-xl);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  box-shadow: var(--sh-sm);
}

.service-highlight h2 {
  font-family: var(--f-display);
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  margin: 0 0 18px;
  color: var(--c-ink);
}

.service-highlight ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.service-highlight li {
  position: relative;
  padding-left: 28px;
  font-size: var(--t-base);
  color: var(--c-muted);
  line-height: 1.56;
}

.service-highlight li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(79,111,47,.12);
  border: 1px solid rgba(79,111,47,.22);
}

.service-highlight li::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 9px;
  width: 6px;
  height: 3.5px;
  border-left: 2px solid var(--c-green);
  border-bottom: 2px solid var(--c-green);
  transform: rotate(-45deg);
}

.service-cta {
  margin: 18px auto 36px;
  max-width: var(--max-w);
  width: calc(100% - 40px);
  padding: 36px;
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, #0b1220, #1a2540);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: var(--sh-lg);
  position: relative;
  overflow: hidden;
}

.service-cta::before {
  content: "";
  position: absolute;
  inset: -40px;
  background: radial-gradient(520px 260px at 15% 0%, rgba(29,78,216,.28), transparent 58%),
    radial-gradient(520px 260px at 85% 100%, rgba(79,111,47,.22), transparent 58%);
  opacity: .6;
  pointer-events: none;
}

.service-cta > * {
  position: relative;
  z-index: 1;
}

.service-cta h2 {
  font-family: var(--f-display);
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  color: #fff;
  margin: 0 0 10px;
}

.service-cta p {
  font-size: var(--t-base);
  color: rgba(255,255,255,.72);
  line-height: var(--lh-body);
  margin: 0 0 18px;
  max-width: 60ch;
}

.service-cta .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: rgba(255,255,255,.94) !important;
  color: #0b1220 !important;
  border-radius: var(--r-sm) !important;
  padding: 13px 24px !important;
  font-weight: 700 !important;
  font-size: var(--t-base) !important;
  border: 0 !important;
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.22) !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}

.service-cta .wp-block-button__link:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 36px rgba(0,0,0,.28) !important;
}

body {
  background: #f2f4ef;
}

.v-trust,
.v-services,
.v-steps--process,
.v-faq {
  position: relative;
}

#etusivu-hero .v-hero__bg {
  transform-origin: center center;
  background-position: center 30%;
}

#etusivu-hero .v-hero__overlay {
  background: linear-gradient(
      116deg,
      rgba(8,12,20,.84) 0%,
      rgba(8,12,20,.58) 40%,
      rgba(8,12,20,.26) 72%,
      rgba(8,12,20,.18) 100%
    );
}

#etusivu-hero .v-hero__overlay::after {
  background: radial-gradient(ellipse 68% 62% at -4% 108%, rgba(79,111,47,.22), transparent 56%),
    radial-gradient(ellipse 44% 34% at 102% 0%, rgba(29,78,216,.10), transparent 48%);
}

#etusivu-hero .v-hero__overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 58%, rgba(8,12,20,.16) 100%);
}

#etusivu-hero .v-btn {
  border-radius: 999px;
  padding: 14px 26px;
}

#etusivu-hero .v-btn--primary {
  box-shadow: 0 6px 20px rgba(29,78,216,.28),
    0 1px 4px rgba(29,78,216,.18);
}

#etusivu-hero .v-btn--primary:hover {
  box-shadow: 0 10px 30px rgba(29,78,216,.36),
    0 2px 8px rgba(29,78,216,.20);
}

#etusivu-hero .v-btn--ghost {
  background: rgba(255,255,255,.11);
  border-color: rgba(255,255,255,.30);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#etusivu-hero .v-btn--ghost:hover {
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.46);
}

#etusivu-hero .v-hero__stats {
  background: rgba(10,14,23,.30);
  backdrop-filter: blur(18px) saturate(1.18);
  -webkit-backdrop-filter: blur(18px) saturate(1.18);
  border-top: 1px solid rgba(255,255,255,.08);
}

#etusivu-hero .v-hero__stat {
  padding: 20px 38px 20px 0;
  margin-right: 38px;
  border-right: 1px solid rgba(255,255,255,.08);
}

#etusivu-hero .v-hero__stat-n {
  font-size: 28px;
  color: rgba(255,255,255,.96);
}

#etusivu-hero .v-hero__stat-l {
  color: rgba(255,255,255,.42);
}

.v-label {
  display: inline-flex;
  align-items: center;
  font-size: var(--t-xs);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--c-green);
  gap: 9px;
  margin-bottom: 18px;
  padding: 6px 12px 6px 10px;
  border-radius: 999px;
  background: rgba(79,111,47,.07);
  border: 1px solid rgba(79,111,47,.14);
  letter-spacing: .14em;
}

.v-label::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-green);
  box-shadow: 0 0 0 4px rgba(79,111,47,.08);
}

.v-trust__header .v-label::before {
  content: "";
  display: block;
  background: var(--c-green);
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.v-trust::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 72% 84% at 100% 0%, rgba(79,111,47,.06), transparent 55%),
    radial-gradient(ellipse 55% 60% at 0% 100%, rgba(29,78,216,.03), transparent 48%);
}

.v-trust__item:nth-child(even)::before {
  left: 0;
}

.v-services__header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 24px;
  margin-bottom: 50px;
}

.v-services__header::after {
  content: "6";
  font-family: var(--f-display);
  font-size: clamp(80px, 10vw, 130px);
  font-weight: 400;
  font-style: italic;
  color: rgba(79,111,47,.07);
  line-height: 1;
  letter-spacing: -.04em;
  user-select: none;
  pointer-events: none;
  padding-bottom: 4px;
  display: none;
}

.v-card:hover {
  transform: translateY(-6px);
  border-color: rgba(79,111,47,.18);
  box-shadow: inset 0 3px 0 0 rgba(79,111,47,.62),
    0 6px 18px rgba(17,24,39,.07),
    0 22px 44px rgba(17,24,39,.08);
}

.v-card__link {
  font-size: 13px;
  font-weight: 700;
  color: var(--c-green-d) !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  position: relative;
  z-index: 2;
  text-decoration: none !important;
  transition: gap .20s ease, color .20s ease;
  padding: 0 24px 22px;
  padding-bottom: 24px;
}

.v-card--cta:hover {
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 10px 26px rgba(29,78,216,.20),
    0 26px 54px rgba(29,78,216,.16);
}

.v-steps--process .v-steps__grid::before {
  content: "";
  position: absolute;
  top: 27px;
  left: 6.5%;
  right: 6.5%;
  height: 1px;
  background: linear-gradient(
    90deg,
    rgba(79,111,47,.55) 0%,
    rgba(79,111,47,.24) 50%,
    rgba(79,111,47,.08) 100%
  );
}

.v-step__num {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 2px solid rgba(79,111,47,.20);
  box-shadow: 0 0 0 7px var(--c-bg),
    0 0 0 8px rgba(79,111,47,.08),
    0 8px 24px rgba(79,111,47,.10);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-size: 26px;
  font-weight: 400;
  color: var(--c-green);
  margin-bottom: 32px;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  transition: transform .28s cubic-bezier(.34,1.5,.64,1), border-color .28s, box-shadow .28s;
  background: rgba(255,255,255,.92);
}

.v-cta {
  position: relative;
  overflow: hidden;
  border-top: none;
  border-radius: 38px;
  margin: 0 18px 22px;
}

.v-cta .v-form-wrap .wpforms-container input[type="text"],
.v-cta .v-form-wrap .wpforms-container input[type="tel"],
.v-cta .v-form-wrap .wpforms-container input[type="email"],
.v-cta .v-form-wrap .wpforms-container select,
.v-cta .v-form-wrap .wpforms-container textarea {
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(0,0,0,.07) !important;
}

.v-cta .v-form-wrap .wpforms-container .wpforms-submit {
  background: var(--c-blue) !important;
  box-shadow: 0 8px 20px rgba(29,78,216,.24) !important;
}

.v-faq__title {
  font-family: var(--f-display);
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  color: var(--c-ink);
  margin: 0 0 28px;
  margin-bottom: 30px;
}

.v-faq__item {
  padding: 18px 0;
  border-bottom: 1px solid rgba(13,17,23,.07);
}

.v-faq__item:first-of-type {
  border-top: 1px solid rgba(13,17,23,.07);
}

@media (max-width: 480px) {
  .v-trust__item {
    padding: 20px 0;
  }

  .v-contact__panel {
    padding: 22px;
  }

  .service-cta, .service-highlight, .service-columns {
    width: calc(100% - 24px);
    padding: 22px;
  }

  .v-numbers__grid {
    grid-template-columns: 1fr;
  }

  #etusivu-hero .v-hero__label {
    padding: 6px 11px 6px 10px;
  }

  .v-card,
  .v-trust__item {
    border-radius: 18px;
  }

  .v-cta {
    border-radius: 20px;
    margin: 0 8px 12px;
  }

}

#etusivu-hero.v-hero {
  border-radius: 0 0 34px 34px;
  min-height: clamp(640px,90vh,900px);
}

#etusivu-hero .v-hero__inner {
  padding: 104px 0 138px;
  max-width: 1200px;
}

#etusivu-hero .v-hero__lead {
  color: rgba(255,255,255,.82);
  line-height: 1.72;
  margin-bottom: 40px;
  font-size: 18px;
  max-width: 620px;
}

.v-hero__stats {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 3;
  border-top: 1px solid rgba(255,255,255,.08);
  opacity: 0;
  animation: vFade .8s 1.1s both;
  background: rgba(10,14,23,.45);
  backdrop-filter: blur(14px);
}

.v-e {
  color: var(--c-green);
}

.v-trust__header .v-label {
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--c-green);
  margin-bottom: 20px;
  background: rgba(79,111,47,.06);
  border: 1px solid rgba(79,111,47,.12);
  padding: 6px 12px 6px 10px;
  display: none;
}

.v-trust {
  position: relative;
  overflow: hidden;
  padding: var(--sp-xl) 0;
  background: linear-gradient(180deg,#eef2eb 0%, #f5f6f2 100%);
}

.v-trust__header {
  max-width: 860px;
  margin-bottom: 44px;
}

.v-trust__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 56px;
  border: none;
  background: none;
}

.v-trust__item {
  display: flex;
  flex-direction: column;
  border-right: none;
  border-left: none;
  position: relative;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 24px 0;
  border-bottom: 1px solid rgba(13,17,23,.08);
  transition: none;
}

.v-trust__item:nth-child(odd),
.v-trust__item:nth-child(even) {
  border-right: none;
  border-left: none;
  padding: 24px 0;
}

.v-trust__item::before {
  content: "";
  position: absolute;
  background: var(--c-green);
  opacity: 0;
  transition: opacity .22s ease;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 3px;
  border-radius: 3px;
  display: none;
}

.v-trust__item:hover {
  border-color: rgba(79,111,47,.14);
  background: none;
  transform: none;
  box-shadow: none;
}

.v-services {
  padding: var(--sp-xl) 0;
  border-top: 1px solid rgba(13,17,23,.05);
  background: linear-gradient(180deg,#f2f5ef 0%, #edf1eb 100%);
}

.v-services__header .v-label {
  display: none;
}

.v-services__title {
  font-family: var(--f-display);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: var(--ls-tight);
  font-size: clamp(36px,4vw,54px);
  margin-bottom: 14px;
}

.v-services__title::after {
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  background: var(--c-green);
  margin-top: 14px;
}

.v-steps--process .v-steps__header .v-label {
  display: none;
}

.v-steps--process .v-steps__header {
  display: grid;
  align-items: end;
  gap: 24px;
  grid-template-columns: 1fr;
  margin-bottom: 56px;
}

.v-steps--process .v-steps__header::after {
  content: "4";
  font-family: var(--f-display);
  font-size: clamp(80px, 10vw, 130px);
  font-weight: 400;
  font-style: italic;
  color: rgba(79,111,47,.07);
  line-height: 1;
  letter-spacing: -.04em;
  user-select: none;
  pointer-events: none;
  padding-bottom: 4px;
  display: none;
}

.v-cta__note a {
  text-underline-offset: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  margin-top: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1.5px solid rgba(255,255,255,.22);
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 600;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.v-cta__note a:hover {
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.40);
  transform: translateY(-2px);
}

.v-cta--gradient::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(820px 420px at 84% -8%, rgba(29,78,216,.18), transparent 54%),
    radial-gradient(760px 420px at -6% 108%, rgba(79,111,47,.24), transparent 56%),
    radial-gradient(500px 260px at 50% 120%, rgba(184,216,130,.05), transparent 52%);
}

.v-faq {
  padding: var(--sp-xl) 0;
  border-top: 1px solid rgba(13,17,23,.05);
  border-radius: 28px;
  overflow: hidden;
  background: linear-gradient(180deg,#f7f8f4 0%, #f3f5f0 100%);
}

.v-steps--process {
  border-top: 1px solid rgba(13,17,23,.05);
  padding: 100px 0;
  position: relative;
  background: linear-gradient(180deg,#f0f3ed 0%, #f6f7f3 100%);
}

.v-steps--process::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(79,111,47,.16) 20%, rgba(79,111,47,.16) 80%, transparent);
}

.v-steps--process::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(13,17,23,.06) 20%, rgba(13,17,23,.06) 80%, transparent);
}

.v-cta__note {
  font-size: var(--t-sm);
  color: rgba(255,255,255,.82);
}

.v-cta__form-title {
  font-family: var(--f-display);
  font-weight: 400;
  letter-spacing: var(--ls-base);
  margin: 0 0 4px;
  font-size: 22px;
  color: #fff;
}

.v-cta__form-sub {
  font-size: var(--t-sm);
  margin: 0 0 18px;
  color: rgba(255,255,255,.82);
}

.v-form-wrap .wpforms-container label {
  font-weight: 600 !important;
  font-size: var(--t-sm) !important;
  margin-bottom: 5px !important;
  color: rgba(255,255,255,.90) !important;
}

#etusivu-hero .v-hero__sep {
  display: none;
  display: none !important;
}

.v-hero__title,
.v-trust__title,
.v-services__title,
.v-steps--process .v-steps__title,
.v-cta__title,
.v-faq__title,
.v-step__title,
.v-trust__name {
  font-family: var(--f-body);
  font-weight: 700;
  letter-spacing: -.025em;
  font-style: normal;
}

#etusivu-hero .v-hero__title {
  margin-bottom: 22px;
  text-shadow: 0 8px 34px rgba(0,0,0,.30);
  font-size: clamp(44px, 5.4vw, 72px);
  line-height: 1.02;
  max-width: 780px;
}

#etusivu-hero .v-hero__label {
  margin-bottom: 30px;
  border-radius: 999px;
  background: none;
  border: none;
  padding: 0;
  font-size: 13px;
  letter-spacing: .12em;
  color: rgba(255,255,255,.78);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  align-items: center;
  gap: 14px;
}

#etusivu-hero .v-hero__brand {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .12em;
  color: rgba(255,255,255,.94);
}

#etusivu-hero .v-hero__tagline {
  font-style: normal;
  font-size: 15px;
  font-weight: 500;
  color: rgba(255,255,255,.84);
  letter-spacing: .01em;
}

.v-trust__title {
  font-family: var(--f-display);
  font-weight: 600;
  letter-spacing: var(--ls-tight);
  color: var(--c-ink);
  margin-bottom: 18px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.06;
}

.v-trust__lead {
  color: var(--c-muted);
  font-size: 18px;
  line-height: 1.78;
  max-width: 60ch;
}

.v-trust__name {
  display: block;
  font-family: var(--f-display);
  font-weight: 400;
  letter-spacing: -.015em;
  color: var(--c-ink);
  line-height: 1.2;
  transition: color .2s;
  font-size: clamp(20px, 1.8vw, 24px);
  margin-bottom: 10px;
}

.v-trust__desc {
  font-size: 15.5px;
  line-height: 1.76;
  color: rgba(13,17,23,.68);
  max-width: 40ch;
}

.v-card {
  padding: 0;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  transition: transform .28s cubic-bezier(.34,1.2,.64,1), box-shadow .28s ease, border-color .28s ease;
  box-shadow: inset 0 3px 0 0 rgba(79,111,47,.30),
    0 2px 8px rgba(17,24,39,.04),
    0 10px 24px rgba(17,24,39,.04);
  border-radius: 20px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(13,17,23,.07);
}

.v-card__title {
  font-weight: 600;
  letter-spacing: -.01em;
  margin: 0 0 8px;
  position: relative;
  z-index: 2;
  padding: 20px 24px 0;
  padding-top: 22px;
  font-size: 17px;
  line-height: 1.34;
  color: rgba(13,17,23,.94);
}

.v-card__desc {
  flex: 1;
  margin: 0 0 18px;
  position: relative;
  z-index: 2;
  padding: 0 24px;
  font-size: 14.5px;
  line-height: 1.68;
  color: rgba(13,17,23,.64);
}

.v-card::before {
  content: "";
  position: absolute;
  inset: -20px;
  background-repeat: no-repeat;
  background-position: right 16px bottom 16px;
  pointer-events: none;
  filter: saturate(0);
  transition: opacity .24s;
  z-index: 0;
  opacity: .13;
  background-size: 108px;
}

.v-card:hover::before {
  opacity: .20;
}

.v-card--cta {
  border-color: transparent;
  background: linear-gradient(135deg, #1b3c82, #2853b8);
}

.v-steps--process .v-steps__title {
  font-family: var(--f-display);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  margin-bottom: 12px;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.06;
}

.v-steps--process .v-steps__lead {
  max-width: 52ch;
  line-height: var(--lh-body);
  font-size: 18px;
  color: rgba(13,17,23,.60);
}

.v-step__title {
  font-family: var(--f-display);
  font-weight: 400;
  color: var(--c-ink);
  margin-bottom: 10px;
  display: block;
  letter-spacing: -.018em;
  font-size: clamp(19px, 1.8vw, 23px);
  line-height: 1.2;
}

.v-step__desc {
  max-width: 26ch;
  display: block;
  font-size: 15.5px;
  line-height: 1.72;
  color: rgba(13,17,23,.66);
}

.v-cta--gradient {
  padding: var(--sp-xl) 0;
  background: linear-gradient(135deg, #101b18 0%, #172620 46%, #1a2b32 100%);
}

.v-cta__title {
  font-family: var(--f-display);
  font-weight: 400;
  letter-spacing: var(--ls-tight);
  margin: 0 0 14px;
  color: #fff;
  text-shadow: 0 6px 20px rgba(0,0,0,.22);
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1.05;
}

.v-cta__desc {
  max-width: 48ch;
  margin: 0 0 26px;
  font-size: 18px;
  line-height: 1.74;
  color: rgba(255,255,255,.86);
}

.v-cta__list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.52;
  color: rgba(255,255,255,.92);
  font-size: 15.5px;
}

.v-cta__form {
  border-radius: var(--r-xl);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  color: #fff;
  padding: 32px;
  box-shadow: 0 22px 56px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.08);
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.17);
}

@media (max-width: 720px) {
  .v-hero__stats-inner {
    flex-wrap: wrap;
  }

  .v-hero__stat {
    padding: 14px 20px 14px 0;
    margin-right: 20px;
  }

  .v-trust__header {
    grid-template-columns: 1fr;
  }

  .v-trust__item {
    grid-template-columns: 48px 1fr;
    border-right: none;
  }

  .v-services__grid {
    grid-template-columns: 1fr;
  }

  .v-benefits {
    grid-template-columns: 1fr;
  }

  .v-steps--grid {
    grid-template-columns: 1fr;
  }

  .v-steps--process .v-steps__grid {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 48px;
  }

  .v-steps--process .v-steps__grid::before {
    display: none;
  }

  .v-numbers__grid {
    grid-template-columns: 1fr 1fr;
  }

  .v-quotes__grid {
    grid-template-columns: 1fr;
  }

  .service-columns .wp-block-columns {
    grid-template-columns: 1fr !important;
  }

  .service-hero .hero-grid {
    padding: 24px;
    gap: 20px;
  }

  .service-hero .hero-image img {
    height: 220px;
  }

  .v-cta__inner {
    gap: 28px;
  }

  #etusivu-hero.v-hero {
    min-height: clamp(540px, 78vh, 760px);
    border-radius: 0 0 26px 26px;
  }

  #etusivu-hero .v-hero__inner {
    padding: 86px 0 122px;
  }

  .v-cta {
    border-radius: 26px;
    margin: 0 12px 16px;
  }

  .v-trust__grid {
    flex-direction: column;
    border: none;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .v-trust__item,
  .v-trust__item:nth-child(odd),
  .v-trust__item:nth-child(even) {
    padding: 20px 0;
  }

  .v-services__title {
    font-size: clamp(30px,8vw,42px);
  }

  .v-faq {
    border-radius: 20px;
  }

  #etusivu-hero .v-hero__title {
    font-size: clamp(36px, 9vw, 52px);
  }

  .v-trust__title,
  .v-services__title,
  .v-steps--process .v-steps__title,
  .v-cta__title {
    font-size: clamp(30px, 7vw, 40px);
  }

  .v-trust__lead,
  .v-steps--process .v-steps__lead,
  .v-cta__desc {
    font-size: 17px;
  }

}

#etusivu-hero .v-hero__label::before {
  width: 6px;
  height: 6px;
  box-shadow: 0 0 8px rgba(184,216,130,.75);
  display: none !important;
}

#etusivu-hero .v-hero__brand::before {
  display: none !important;
}

.v-hero {
  min-height: var(--hero-min-h, clamp(520px, 80vh, 780px));
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  border-radius: 0 0 28px 28px;
  isolation: isolate;
}

.v-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(14, 20, 28, .72) 0%, rgba(14, 20, 28, .56) 34%, rgba(14, 20, 28, .20) 64%, rgba(14, 20, 28, .08) 100%),
    linear-gradient(180deg, rgba(8, 12, 18, .10) 0%, rgba(8, 12, 18, .12) 42%, rgba(8, 12, 18, .42) 100%);
}

.v-hero__inner {
  padding: 90px 0 120px;
  position: relative;
  z-index: 2;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding-top: clamp(42px, 7vw, 86px);
  padding-bottom: clamp(26px, 4vw, 42px);
}

.v-hero__label {
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.52);
  margin-bottom: 28px;
  opacity: 0;
  animation: vUp .7s .15s both;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: 0 0 16px;
}

.v-hero__brand {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.96);
}

.v-hero__e {
  color: #8EA85A;
}

.v-hero__tagline {
  font-style: italic;
  text-transform: none;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.84);
  letter-spacing: .01em;
}

.v-hero__title {
  font-family: var(--f-display);
  opacity: 0;
  animation: vUp .9s .28s both;
  max-width: 9ch;
  margin: 0 0 18px;
  font-size: clamp(40px, 5.4vw, 72px);
  line-height: .96;
  letter-spacing: -.04em;
  font-weight: 800;
  color: #fff;
  text-wrap: balance;
}

.v-hero__title em,
.v-hero__title .accent,
.v-hero__title strong em {
  color: #8EA85A;
  font-style: italic;
  font-weight: 800;
}

.v-hero__lead {
  opacity: 0;
  animation: vUp .9s .42s both;
  max-width: 640px;
  margin: 0 0 28px;
  font-size: clamp(16px, 1.45vw, 19px);
  line-height: 1.68;
  font-weight: 500;
  color: rgba(255,255,255,.88);
  text-wrap: pretty;
}

.v-hero__actions,
.v-hero__cta,
.v-hero .v-btns {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.v-hero .v-btn,
.v-hero a[class*="btn"],
.v-hero .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.01em;
  text-decoration: none;
  transition: transform .22s ease,
    box-shadow .22s ease,
    background-color .22s ease,
    border-color .22s ease,
    color .22s ease;
}

.v-hero .v-btn--primary,
.v-hero a[class*="primary"],
.v-hero .wp-block-button.is-style-fill .wp-block-button__link {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  color: #fff;
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 10px 24px rgba(29, 78, 216, .28);
}

.v-hero .v-btn--secondary,
.v-hero a[href^="tel:"],
.v-hero .wp-block-button.is-style-outline .wp-block-button__link {
  background: rgba(255,255,255,.10);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.v-hero .v-btn:hover,
.v-hero a[class*="btn"]:hover,
.v-hero .wp-block-button__link:hover {
  transform: translateY(-2px);
}

.v-hero__content,
.v-hero__text,
.v-hero__copy {
  max-width: 760px;
}

.v-hero__stats,
.v-hero .v-stats {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  width: fit-content;
  max-width: 100%;
  margin-top: 28px;
  padding: 10px 12px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(20,27,36,.52) 0%, rgba(20,27,36,.70) 100%);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 16px 40px rgba(8,12,18,.24),
    inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  gap: 0;
}

.v-hero__stat,
.v-hero .v-stat {
  position: relative;
  flex: 0 0 auto;
  min-width: 150px;
  padding: 14px 20px 12px;
}

.v-hero__stat:not(:last-child)::after,
.v-hero .v-stat:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 0;
  width: 1px;
  height: calc(100% - 28px);
  background: rgba(255,255,255,.12);
}

.v-hero__stat *,
.v-hero .v-stat * {
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
}

.v-hero__stat-value,
.v-hero .v-stat__value,
.v-hero__stat strong,
.v-hero .v-stat strong {
  display: block;
  margin: 0 0 4px;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.02;
  font-weight: 800;
  letter-spacing: -.03em;
  color: #fff;
}

.v-hero__stat-label,
.v-hero .v-stat__label,
.v-hero__stat span,
.v-hero .v-stat span {
  display: block;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.68);
}

@media (min-width: 1025px) {
  .v-hero__inner {
    min-height: clamp(560px, 72vh, 720px);
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

}

.site-header,
.ast-header-break-point .site-header,
.ast-primary-header-bar,
.ast-builder-menu-1 {
  background: #f5f6f2;
}

.ast-primary-header-bar .site-primary-header-wrap,
.ast-primary-header-bar .ast-builder-grid-row {
  min-height: 88px;
}

.ast-builder-grid-row {
  align-items: center;
}

.site-branding {
  display: flex;
  align-items: center;
}

.site-branding img,
.custom-logo-link img {
  max-height: 42px;
  width: auto;
}

.site-title,
.site-title a {
  color: #3a3a3a;
  font-weight: 800;
  letter-spacing: -.02em;
}

.main-header-menu,
.ast-builder-menu-1 .menu {
  gap: 0;
}

.main-header-menu > .menu-item,
.ast-builder-menu-1 .menu > .menu-item {
  margin: 0 0 0 6px;
}

.main-header-menu > .menu-item > a,
.ast-builder-menu-1 .menu > .menu-item > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  color: #3a3a3a;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -.01em;
  text-decoration: none;
  transition: color .22s ease,
    background-color .22s ease,
    opacity .22s ease;
  border-radius: 999px;
}

.main-header-menu > .menu-item > a:hover,
.ast-builder-menu-1 .menu > .menu-item > a:hover {
  color: #4F6F2F;
  background: rgba(79, 111, 47, 0.08);
}

.main-header-menu > .current-menu-item > a,
.main-header-menu > .current-menu-ancestor > a,
.ast-builder-menu-1 .menu > .current-menu-item > a,
.ast-builder-menu-1 .menu > .current-menu-ancestor > a {
  color: #4F6F2F;
  background: rgba(79, 111, 47, 0.10);
  font-weight: 700;
}

.main-header-menu .menu-item-has-children > a .ast-icon,
.ast-builder-menu-1 .menu-item-has-children > a .ast-icon {
  color: currentColor;
  opacity: .72;
}

.sub-menu,
.ast-builder-menu-1 .sub-menu {
  padding: 10px;
  border-radius: 18px;
  border: 1px solid rgba(58,58,58,.08);
  background: rgba(245,246,242,.96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 18px 36px rgba(20, 28, 38, 0.10);
}

.sub-menu .menu-item a,
.ast-builder-menu-1 .sub-menu .menu-item a {
  border-radius: 12px;
  padding: 10px 14px;
  color: #3a3a3a;
  font-size: 14px;
  font-weight: 600;
}

.sub-menu .menu-item a:hover,
.ast-builder-menu-1 .sub-menu .menu-item a:hover {
  background: rgba(79, 111, 47, 0.08);
  color: #4F6F2F;
}

.site-content {
  position: relative;
}

.menu-toggle,
.ast-mobile-menu-trigger-minimal {
  border-radius: 12px;
}

.menu-toggle:hover,
.ast-mobile-menu-trigger-minimal:hover {
  background: rgba(79,111,47,.08);
}

.site-branding img {
  max-height: 42px;
  width: auto;
}

.v-footer__inner {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 54px 0 20px;
}

.v-footer__grid {
  display: grid;
  grid-template-columns: 1.25fr .95fr .95fr;
  gap: 42px;
  align-items: start;
}

.v-footer__col {
  min-width: 0;
}

.v-footer__logo {
  margin-bottom: 10px;
  font-size: clamp(30px, 3vw, 40px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.04em;
  color: #fff;
}

.v-footer__logo span {
  color: #8EA85A;
}

.v-footer__tagline {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 700;
  color: rgba(255,255,255,.74);
}

.v-footer__text {
  max-width: 44ch;
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,.78);
}

.v-footer__title {
  margin: 4px 0 16px;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.96);
}

.v-footer__links,
.v-footer__contact {
  margin: 0;
  padding: 0;
  list-style: none;
}

.v-footer__links li,
.v-footer__contact li {
  margin: 0 0 10px;
}

.v-footer__links a,
.v-footer__contact a {
  color: rgba(255,255,255,.82);
  text-decoration: none;
  transition: color .2s ease, opacity .2s ease, transform .2s ease;
}

.v-footer__links a:hover,
.v-footer__contact a:hover {
  color: #8EA85A;
}

.v-footer__bottom {
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.10);
}

.v-footer__bottom p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255,255,255,.60);
}

.vhx-faq,
.v-faq,
.v-footer + * {
  margin-bottom: 0;
}

.v-footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 50px;
}

.v-footer h3 {
  font-size: 28px;
  margin-bottom: 10px;
}

.v-footer h4 {
  font-size: 16px;
  margin-bottom: 15px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.v-footer p {
  opacity: .85;
  line-height: 1.6;
}

.v-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.v-footer li {
  margin-bottom: 8px;
  opacity: .9;
}

.v-footer li:hover {
  color: #8EA85A;
}

.v-service-page.v-service-ivlp {
  --vsp-text: #3a3a3a;
  --vsp-dark: #161d2a;
  --vsp-dark-2: #1d2433;
  --vsp-green: #4F6F2F;
  --vsp-green-soft: #7D9646;
  --vsp-blue: #1d4ed8;
  --vsp-blue-dark: #1e3a8a;
  --vsp-bg: #f5f6f2;
  --vsp-mineral: #edf1eb;
  --vsp-soft: #f1f3ee;
  --vsp-line: rgba(58,58,58,.10);
  --vsp-radius: 26px;
  --vsp-radius-md: 20px;
  --vsp-shadow: 0 18px 50px rgba(16,24,40,.08);
  --vsp-shell: 1180px;
  --vsp-shell-narrow: 900px;
  color: var(--vsp-text);
  background: var(--vsp-bg);
}

.v-service-page.v-service-ivlp *,
.v-service-page.v-service-ivlp *::before,
.v-service-page.v-service-ivlp *::after {
  box-sizing: border-box;
}

.vsp-shell--narrow {
  width: min(calc(100% - 40px), var(--vsp-shell-narrow));
}

.vsp-section--mineral {
  background: var(--vsp-mineral);
}

.vsp-section--warm {
  background: var(--vsp-bg);
}

.vsp-section--soft {
  background: var(--vsp-soft);
}

.vsp-section--faq {
  background: #f3f4ef;
}

.vsp-section-head--left {
  margin-bottom: 32px;
}

.vsp-section-head p {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.72;
  color: rgba(58,58,58,.86);
}

.vsp-hero {
  position: relative;
  padding: 72px 0 34px;
  overflow: hidden;
  background: var(--vsp-dark);
}

.vsp-hero__bg,
.vsp-hero__overlay {
  position: absolute;
  inset: 0;
}

.vsp-hero__bg {
  background-image: var(--service-hero);
  background-size: cover;
  background-position: center center;
  transform: scale(1.02);
}

.vsp-hero__overlay {
  background: linear-gradient(90deg, rgba(22,29,42,.88) 0%, rgba(22,29,42,.68) 38%, rgba(22,29,42,.30) 72%, rgba(22,29,42,.18) 100%),
    linear-gradient(180deg, rgba(22,29,42,.22) 0%, rgba(22,29,42,.48) 100%);
}

.vsp-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .7fr);
  gap: 34px;
  align-items: center;
}

.vsp-hero__content {
  max-width: 720px;
  color: #fff;
  padding: 18px 0 10px;
}

.vsp-kicker {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 0 0 20px;
  font-size: .9rem;
  color: rgba(255,255,255,.82);
}

.vsp-brand {
  font-weight: 900;
  letter-spacing: .04em;
  color: #fff;
}

.vsp-brand__e {
  color: var(--vsp-green-soft);
  margin-left: 0.03em;
  margin-right: 0.01em;
}

.vsp-kicker__dot {
  opacity: .5;
}

.vsp-hero__title {
  margin: 0 0 18px;
  font-size: clamp(2.5rem, 5vw, 4.7rem);
  line-height: .95;
  letter-spacing: -.05em;
  color: #fff;
}

.vsp-hero__lead {
  max-width: 700px;
  margin: 0 0 28px;
  font-size: 1.08rem;
  line-height: 1.75;
  color: rgba(255,255,255,.86);
}

.vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.vsp-btn--primary {
  background: var(--vsp-blue);
  color: #fff;
  box-shadow: 0 12px 26px rgba(29,78,216,.22);
}

.vsp-btn--primary:hover {
  background: var(--vsp-blue-dark);
}

.vsp-btn--ghost {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  backdrop-filter: blur(8px);
}

.vsp-btn--ghost:hover {
  background: rgba(255,255,255,.14);
}

.vsp-btn--secondary {
  background: #fff;
  border: 1px solid rgba(58,58,58,.10);
  color: #26303e;
}

.vsp-btn--secondary:hover {
  background: #f7f8f4;
}

.vsp-hero__aside {
  position: relative;
  z-index: 2;
}

.vsp-info-card {
  padding: 26px 24px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 24px;
  background: rgba(255,255,255,.08);
  color: #fff;
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 48px rgba(0,0,0,.16);
}

.vsp-info-card h2 {
  margin: 0 0 12px;
  font-size: 1.35rem;
  line-height: 1.18;
  color: #fff;
}

.vsp-info-card p {
  margin: 0 0 16px;
  line-height: 1.68;
  color: rgba(255,255,255,.84);
}

.vsp-checks--light li {
  color: rgba(255,255,255,.88);
}

.vsp-checks--light li::before {
  background: #8EA85A;
}

.vsp-stats {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 0;
  margin-top: 28px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 0 0 24px 24px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(15,22,33,.72) 0%, rgba(15,22,33,.88) 100%);
  box-shadow: 0 20px 40px rgba(0,0,0,.16);
}

.vsp-stat {
  padding: 22px 24px;
  border-right: 1px solid rgba(255,255,255,.09);
}

.vsp-stat:last-child {
  border-right: 0;
}

.vsp-stat strong {
  display: block;
  margin: 0 0 6px;
  font-size: 1.2rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #fff;
}

.vsp-stat span {
  display: block;
  font-size: .88rem;
  color: rgba(255,255,255,.68);
}

.vsp-grid {
  display: grid;
  gap: 22px;
}

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

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

.vsp-card {
  padding: 28px 24px;
  border: 1px solid var(--vsp-line);
  border-radius: var(--vsp-radius-md);
  background: rgba(255,255,255,.66);
  box-shadow: 0 10px 28px rgba(16,24,40,.04);
}

.vsp-card h3 {
  margin: 0 0 10px;
  font-size: 1.18rem;
  line-height: 1.2;
  color: #27303d;
}

.vsp-card p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.72;
  color: rgba(58,58,58,.84);
}

.vsp-card--feature {
  background: #fafbf8;
}

.vsp-split {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .7fr);
  gap: 28px;
  align-items: start;
}

.vsp-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 20px;
}

.vsp-step {
  padding: 26px 20px 22px;
  border: 1px solid var(--vsp-line);
  border-radius: 22px;
  background: #fafbf8;
}

.vsp-step__num {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin: 0 0 16px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(58,58,58,.08);
  font-weight: 900;
  color: var(--vsp-green);
  box-shadow: 0 8px 20px rgba(16,24,40,.05);
}

.vsp-step h3 {
  margin: 0 0 10px;
  font-size: 1.08rem;
  color: #27303d;
}

.vsp-step p {
  margin: 0;
  line-height: 1.68;
  color: rgba(58,58,58,.82);
}

.vsp-calc {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .75fr);
  gap: 24px;
  align-items: stretch;
}

.vsp-calc__content,
.vsp-calc__box {
  border: 1px solid var(--vsp-line);
  border-radius: 26px;
  background: rgba(255,255,255,.72);
  box-shadow: var(--vsp-shadow);
}

.vsp-calc__content {
  padding: 34px 30px;
}

.vsp-calc__content h2 {
  margin: 0 0 14px;
  font-size: clamp(1.9rem, 2.8vw, 3rem);
  line-height: 1.04;
  color: #27303d;
}

.vsp-calc__content p {
  margin: 0 0 24px;
  line-height: 1.75;
  color: rgba(58,58,58,.85);
}

.vsp-calc__box {
  padding: 30px 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(180deg, #f8faf6 0%, #eef3eb 100%);
}

.vsp-calc__box h3 {
  margin: 0 0 10px;
  font-size: 1.22rem;
  color: #27303d;
}

.vsp-calc__box p {
  margin: 0;
  line-height: 1.7;
  color: rgba(58,58,58,.84);
}

.vsp-faq {
  display: grid;
  gap: 14px;
}

.vsp-faq__item {
  border: 1px solid var(--vsp-line);
  border-radius: 20px;
  background: #fafbf8;
  overflow: hidden;
}

.vsp-faq__item summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 22px 54px 22px 22px;
  font-size: 1.04rem;
  font-weight: 800;
  color: #26303e;
}

.vsp-faq__item summary::-webkit-details-marker {
  display: none;
}

.vsp-faq__item summary::after {
  content: "+";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.3rem;
  line-height: 1;
  color: var(--vsp-green);
}

.vsp-faq__item[open] summary::after {
  content: "–";
}

.vsp-faq__content {
  padding: 0 22px 22px;
}

.vsp-faq__content p {
  margin: 0;
  line-height: 1.76;
  color: rgba(58,58,58,.84);
}

.vsp-section--cta {
  background: radial-gradient(circle at top left, rgba(79,111,47,.22) 0%, rgba(79,111,47,0) 34%),
    radial-gradient(circle at bottom right, rgba(29,78,216,.18) 0%, rgba(29,78,216,0) 28%),
    linear-gradient(135deg, #0f1723 0%, #132031 52%, #182537 100%);
}

.vsp-cta {
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(320px,.7fr);
  gap: 28px;
  align-items: start;
  padding: 18px 0;
}

.vsp-cta__content {
  color: #fff;
  padding: 12px 0;
}

.vsp-cta__content h2 {
  margin: 0 0 16px;
  font-size: clamp(2rem, 3vw, 3.3rem);
  line-height: 1.02;
  color: #fff;
}

.vsp-cta__content p {
  margin: 0 0 20px;
  max-width: 680px;
  line-height: 1.78;
  color: rgba(255,255,255,.84);
}

.vsp-cta__phone {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 22px;
}

.vsp-cta__phone span {
  font-size: .92rem;
  color: rgba(255,255,255,.82);
}

.vsp-cta__phone a {
  color: #fff;
  text-decoration: none;
  font-size: 1.3rem;
  font-weight: 900;
  letter-spacing: .01em;
}

.vsp-cta__form {
  padding: 22px;
  border-radius: 24px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  box-shadow: 0 20px 40px rgba(0,0,0,.18);
}

.v-service-page.v-service-ivlp .vsp-hero {
  padding: 88px 0 38px;
}

.v-service-page.v-service-ivlp .vsp-hero__overlay {
  background: linear-gradient(90deg, rgba(22,29,42,.90) 0%, rgba(22,29,42,.72) 38%, rgba(22,29,42,.34) 72%, rgba(22,29,42,.22) 100%),
    linear-gradient(180deg, rgba(22,29,42,.20) 0%, rgba(22,29,42,.54) 100%);
}

.v-service-page.v-service-ivlp .vsp-hero__title {
  max-width: 760px;
  font-size: clamp(2.8rem, 5.3vw, 5.2rem);
  line-height: .93;
  letter-spacing: -.055em;
}

.v-service-page.v-service-ivlp .vsp-hero__lead {
  max-width: 690px;
  font-size: 1.12rem;
  line-height: 1.78;
  color: rgba(255,255,255,.95);
}

.v-service-page.v-service-ivlp .vsp-info-card {
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 22px 52px rgba(0,0,0,.20);
}

.v-service-page.v-service-ivlp .vsp-stats {
  margin-top: 34px;
}

.v-service-page.v-service-ivlp .vsp-section {
  padding: 96px 0;
}

.v-service-page.v-service-ivlp .vsp-section-head {
  max-width: 820px;
  margin-bottom: 46px;
}

.v-service-page.v-service-ivlp .vsp-section-head h2 {
  font-size: clamp(2.1rem, 3.1vw, 3.5rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.v-service-page.v-service-ivlp .vsp-section-head p {
  font-size: 1.08rem;
  line-height: 1.76;
}

.v-service-page.v-service-ivlp .vsp-card {
  padding: 30px 26px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(58,58,58,.09);
  box-shadow: 0 12px 32px rgba(16,24,40,.045);
}

.v-service-page.v-service-ivlp .vsp-card h3 {
  font-size: 1.2rem;
  margin-bottom: 12px;
}

.v-service-page.v-service-ivlp .vsp-card p {
  font-size: 1rem;
  line-height: 1.74;
}

.v-service-page.v-service-ivlp .vsp-card--feature {
  background: rgba(255,255,255,.88);
}

.v-service-page.v-service-ivlp .vsp-note {
  background: linear-gradient(180deg, #fbfcf8 0%, #f2f5ef 100%);
  border: 1px solid rgba(58,58,58,.09);
  box-shadow: 0 16px 38px rgba(16,24,40,.06);
}

.v-service-page.v-service-ivlp .vsp-note h3 {
  font-size: 1.18rem;
}

.v-service-page.v-service-ivlp .vsp-steps {
  gap: 22px;
}

.v-service-page.v-service-ivlp .vsp-step {
  padding: 28px 22px 24px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 10px 24px rgba(16,24,40,.04);
}

.v-service-page.v-service-ivlp .vsp-step__num {
  width: 46px;
  height: 46px;
  margin-bottom: 18px;
  font-size: 1rem;
}

.v-service-page.v-service-ivlp .vsp-step h3 {
  font-size: 1.08rem;
  margin-bottom: 10px;
}

.v-service-page.v-service-ivlp .vsp-calc {
  gap: 26px;
}

.v-service-page.v-service-ivlp .vsp-calc__content,
.v-service-page.v-service-ivlp .vsp-calc__box {
  border-radius: 28px;
}

.v-service-page.v-service-ivlp .vsp-calc__content {
  padding: 40px 34px;
  background: linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.78) 100%);
}

.v-service-page.v-service-ivlp .vsp-calc__content h2 {
  font-size: clamp(2rem, 3vw, 3.2rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.v-service-page.v-service-ivlp .vsp-calc__box {
  background: linear-gradient(180deg, #f7faf4 0%, #edf3e8 100%);
  min-height: 100%;
}

.v-service-page.v-service-ivlp .vsp-faq__item {
  background: rgba(255,255,255,.78);
}

.v-service-page.v-service-ivlp .vsp-faq__item summary {
  padding: 24px 56px 24px 24px;
  font-size: 1.02rem;
}

.v-service-page.v-service-ivlp .vsp-cta {
  gap: 34px;
}

.v-service-page.v-service-ivlp .vsp-cta__content {
  padding-top: 18px;
}

.v-service-page.v-service-ivlp .vsp-cta__content h2 {
  max-width: 620px;
}

.v-service-page.v-service-ivlp .vsp-cta__content p {
  max-width: 620px;
  font-size: 1.06rem;
}

.v-service-page.v-service-ivlp .vsp-cta__form {
  padding: 24px;
  background: rgba(255,255,255,.09);
}

@media (max-width: 820px) {
  .vsp-section {
    padding: 64px 0;
  }

  .vsp-hero {
    padding: 52px 0 24px;
  }

  .vsp-grid--2,
  .vsp-grid--3,
  .vsp-steps,
  .vsp-stats {
    grid-template-columns: 1fr;
  }

  .vsp-stat {
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.09);
  }

  .vsp-stat:last-child {
    border-bottom: 0;
  }

  .vsp-hero__title {
    font-size: clamp(2.2rem, 10vw, 3.4rem);
  }

  .vsp-section-head h2,
  .vsp-calc__content h2,
  .vsp-cta__content h2 {
    font-size: clamp(1.8rem, 8vw, 2.6rem);
  }

  .vsp-btn {
    width: 100%;
  }

  .vsp-hero__actions {
    flex-direction: column;
  }

  .vsp-kicker {
    gap: 8px;
  }

  .v-service-page.v-service-ivlp .vsp-hero {
    padding: 64px 0 24px;
  }

  .v-service-page.v-service-ivlp .vsp-section {
    padding: 72px 0;
  }

  .v-service-page.v-service-ivlp .vsp-hero__title {
    font-size: clamp(2.3rem, 10vw, 3.7rem);
  }

  .v-service-page.v-service-ivlp .vsp-section-head h2,
  .v-service-page.v-service-ivlp .vsp-calc__content h2,
  .v-service-page.v-service-ivlp .vsp-cta__content h2 {
    font-size: clamp(1.9rem, 8vw, 2.7rem);
  }

  .v-service-page.v-service-ivlp .vsp-card,
  .v-service-page.v-service-ivlp .vsp-step,
  .v-service-page.v-service-ivlp .vsp-calc__content,
  .v-service-page.v-service-ivlp .vsp-calc__box {
    padding-left: 22px;
    padding-right: 22px;
  }

}

.v-footer-e {
  color: #8EA85A;
}

.site-footer .ast-container {
  width: 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.v-footer {
  position: relative;
  border-radius: 28px 28px 0 0;
  overflow: hidden;
  background: #161d2a;
  color: white;
  margin-top: 80px;
  width: 100%;
  margin: 80px auto 0;
}

.v-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 70px 30px 40px;
}

.vsp-calc__box iframe {
  background: #fff;
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}

.ast-primary-header-bar {
  box-shadow: 0 1px 0 rgba(255,255,255,.65);
  background: rgba(245, 246, 242, .92);
  border-bottom: 1px solid rgba(58, 58, 58, 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.ast-primary-header-bar .ast-builder-grid-row {
  min-height: 88px;
  align-items: center;
}

.custom-logo-link img,
.site-branding img {
  max-height: 42px;
  width: auto;
}

.main-header-menu > .menu-item > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  color: #3a3a3a;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.01em;
  transition: color .2s ease,
    background-color .2s ease,
    transform .2s ease;
}

.main-header-menu > .menu-item > a:hover {
  color: #4F6F2F;
  background: rgba(79, 111, 47, 0.08);
}

.main-header-menu > .current-menu-item > a,
.main-header-menu > .current-menu-ancestor > a {
  color: #4F6F2F;
  background: rgba(79, 111, 47, 0.12);
  font-weight: 700;
}

.main-header-menu .sub-menu {
  padding: 10px;
  border-radius: 16px;
  background: rgba(245, 246, 242, .98);
  border: 1px solid rgba(58,58,58,.08);
  box-shadow: 0 16px 30px rgba(20, 28, 38, 0.10);
}

.main-header-menu .sub-menu a {
  border-radius: 10px;
}

.main-header-menu .sub-menu a:hover {
  background: rgba(79, 111, 47, 0.08);
  color: #4F6F2F;
}

.vsp-section {
  padding: 72px 0;
  position: relative;
}

.vsp-section--accent {
  background: #edf1eb;
}

.vsp-shell {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
}

.vsp-section-head {
  max-width: 760px;
  margin: 0 0 32px;
  text-align: left;
}

.vsp-eyebrow {
  margin: 0 0 10px;
  font-size: .8rem;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  color: #4F6F2F;
}

.vsp-eyebrow--light {
  color: #8EA85A;
}

.vsp-section-head h2 {
  margin: 0 0 14px;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: #2a3138;
  text-align: left;
}

.vsp-section-head > p:last-child {
  margin: 0;
  max-width: 620px;
  font-size: 16px;
  line-height: 1.7;
  color: #55606b;
  text-align: left;
}

.vsp-savings {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}

.vsp-savings__box {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  padding: 28px 28px 24px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 20px;
  box-shadow: 0 10px 28px rgba(16,24,40,.06);
}

.vsp-savings__box h3 {
  margin: 0 0 12px;
  font-size: 22px;
  line-height: 1.2;
  color: #2a3138;
}

.vsp-savings__box p {
  margin: 0 0 14px;
  font-size: 15px;
  line-height: 1.7;
  color: #5c6670;
}

.vsp-checks {
  display: grid;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.vsp-checks li {
  position: relative;
  margin: 0 0 8px;
  padding-left: 20px;
  font-size: 14px;
  line-height: 1.6;
  color: #3f4954;
}

.vsp-checks li:last-child {
  margin-bottom: 0;
}

.vsp-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .6em;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #4F6F2F;
  transform: translateY(-50%);
}

.vsp-savings__numbers {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.vsp-saving {
  padding: 18px 14px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(16,24,40,.05);
  text-align: center;
}

.vsp-saving strong {
  display: block;
  margin: 0 0 6px;
  font-size: 22px;
  line-height: 1.1;
  color: #2a3138;
}

.vsp-saving span {
  display: block;
  font-size: 13px;
  line-height: 1.45;
  color: #6b7580;
}

.vsp-cooling {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 56px 28px;
  border-radius: 28px;
  background: radial-gradient(circle at top left, rgba(79,111,47,.16), transparent 38%),
    linear-gradient(135deg, #0f1723 0%, #13233a 55%, #162844 100%);
  color: #fff;
  box-shadow: 0 18px 46px rgba(15,23,35,.16);
}

.vsp-cooling h2 {
  margin: 0 0 14px;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: #fff;
}

.vsp-cooling > p {
  max-width: 620px;
  margin: 0 0 26px;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(255,255,255,.84);
}

.vsp-cooling__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.vsp-cooling__card {
  padding: 18px 16px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 24px rgba(0,0,0,.14);
}

.vsp-cooling__card h3 {
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.25;
  color: #fff;
}

.vsp-cooling__card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255,255,255,.78);
}

.vsp-btn {
  font-size: .98rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  background: #1d4ed8;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(29,78,216,.28);
  transition: transform .2s ease, background-color .2s ease;
}

.vsp-btn:hover {
  transform: translateY(-2px);
  background: #1e3a8a;
}

.v-service-ivlp .vsp-hero {
  position: relative;
  overflow: hidden;
}

.v-service-ivlp .vsp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(300px, 0.55fr);
  gap: 34px;
  align-items: start;
  padding-top: 84px;
  padding-bottom: 30px;
}

.v-service-ivlp .vsp-hero__content {
  min-width: 0;
  max-width: none;
  position: relative;
  z-index: 2;
  padding-right: 8px;
}

.v-service-ivlp .vsp-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}

.v-service-ivlp .vsp-brand {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .10em;
}

.v-service-ivlp .vsp-kicker__dot {
  opacity: .22;
}

.v-service-ivlp .vsp-kicker__text {
  font-size: 14px;
  color: rgba(255,255,255,.92);
}

.v-service-ivlp .vsp-hero__title {
  max-width: 1120px;
  margin: 0 0 22px;
  font-size: clamp(40px, 4.2vw, 74px);
  line-height: .94;
  letter-spacing: -.045em;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: auto;
}

.v-service-ivlp .vsp-hero__lead {
  max-width: 760px;
  margin: 0 0 30px;
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.62;
  color: rgba(255,255,255,.90);
}

.v-service-ivlp .vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.v-service-ivlp .vsp-hero__aside {
  display: flex;
  justify-content: flex-end;
  align-self: start;
  width: 100%;
  position: relative;
  z-index: 2;
  padding-top: 6px;
  margin-left: auto;
}

.v-service-ivlp .vsp-info-card {
  width: min(100%, 360px);
  margin-left: auto;
  padding: 30px 28px;
  border-radius: 24px;
  background: linear-gradient(180deg,
      rgba(255,255,255,.42) 0%,
      rgba(255,255,255,.30) 100%);
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 18px 50px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.28);
  backdrop-filter: blur(16px) saturate(1.05);
  -webkit-backdrop-filter: blur(16px) saturate(1.05);
}

.v-service-ivlp .vsp-info-card h2 {
  margin: 0 0 14px;
  font-size: clamp(26px, 2vw, 34px);
  line-height: 1.08;
  letter-spacing: -.03em;
  color: rgba(255,255,255,.97);
}

.v-service-ivlp .vsp-info-card p {
  margin: 0 0 18px;
  font-size: 16px;
  line-height: 1.68;
  color: rgba(255,255,255,.90);
}

.v-service-ivlp .vsp-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.v-service-ivlp .vsp-checks li {
  position: relative;
  padding-left: 24px;
  font-size: 15px;
  line-height: 1.55;
  color: rgba(255,255,255,.90);
}

.v-service-ivlp .vsp-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8fbc57;
  box-shadow: 0 0 0 4px rgba(143,188,87,.14);
  transform: translateY(-50%);
}

.v-service-ivlp .vsp-stats {
  margin-top: 18px;
}

@media (max-width: 1200px) {
  .v-service-ivlp .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
    gap: 28px;
  }

  .v-service-ivlp .vsp-hero__title {
    max-width: 980px;
    font-size: clamp(38px, 4.8vw, 64px);
  }

  .v-service-ivlp .vsp-info-card {
    width: min(100%, 340px);
  }

}

.v-service-ilp .vsp-hero {
  position: relative;
  overflow: hidden;
}

.v-service-ilp .vsp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.46fr) minmax(360px, 0.54fr);
  gap: 46px;
  align-items: center;
  padding-top: 84px;
  padding-bottom: 34px;
}

.v-service-ilp .vsp-hero__content {
  min-width: 0;
  max-width: 880px;
  position: relative;
  z-index: 2;
}

.v-service-ilp .vsp-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}

.v-service-ilp .vsp-brand {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .10em;
}

.v-service-ilp .vsp-brand__e {
  color: var(--c-green-l);
}

.v-service-ilp .vsp-kicker__dot {
  opacity: .22;
}

.v-service-ilp .vsp-kicker__text {
  font-size: 14px;
  color: rgba(255,255,255,.82);
}

.v-service-ilp .vsp-hero__title {
  max-width: 860px;
  margin: 0 0 22px;
  font-size: clamp(44px, 5.2vw, 74px);
  line-height: .94;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.v-service-ilp .vsp-hero__lead {
  max-width: 760px;
  margin: 0 0 30px;
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.62;
  color: rgba(255,255,255,.90);
}

.v-service-ilp .vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.v-service-ilp .vsp-hero__aside {
  display: flex;
  justify-content: flex-end;
  align-self: center;
  width: 100%;
  position: relative;
  z-index: 2;
  margin-left: auto;
}

.v-service-ilp .vsp-info-card {
  width: min(100%, 470px);
  margin-left: auto;
  padding: 30px 30px;
  border-radius: 26px;
  background: linear-gradient(
      180deg,
      rgba(255,255,255,.34) 0%,
      rgba(255,255,255,.24) 100%
    );
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 18px 50px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.24);
  backdrop-filter: blur(16px) saturate(1.06);
  -webkit-backdrop-filter: blur(16px) saturate(1.06);
}

.v-service-ilp .vsp-info-card h2 {
  margin: 0 0 14px;
  max-width: 100%;
  font-size: clamp(26px, 2vw, 34px);
  line-height: 1.08;
  letter-spacing: -.03em;
  color: rgba(255,255,255,.97);
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
}

.v-service-ilp .vsp-info-card p {
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 1.68;
  color: rgba(255,255,255,.90);
}

.v-service-ilp .vsp-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.v-service-ilp .vsp-checks li {
  position: relative;
  padding-left: 24px;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255,255,255,.90);
}

.v-service-ilp .vsp-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8fbc57;
  box-shadow: 0 0 0 4px rgba(143,188,87,.14);
  transform: translateY(-50%);
}

.v-service-mlp .vsp-hero {
  position: relative;
  overflow: hidden;
}

.v-service-mlp .vsp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.46fr) minmax(360px, 0.54fr);
  gap: 46px;
  align-items: center;
  padding-top: 84px;
  padding-bottom: 34px;
}

.v-service-mlp .vsp-hero__content {
  min-width: 0;
  max-width: 880px;
  position: relative;
  z-index: 2;
}

.v-service-mlp .vsp-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}

.v-service-mlp .vsp-brand {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .10em;
}

.v-service-mlp .vsp-brand__e {
  color: var(--c-green-l);
}

.v-service-mlp .vsp-kicker__dot {
  opacity: .22;
}

.v-service-mlp .vsp-kicker__text {
  font-size: 14px;
  color: rgba(255,255,255,.82);
}

.v-service-mlp .vsp-hero__title {
  max-width: 860px;
  margin: 0 0 22px;
  font-size: clamp(44px, 5.1vw, 72px);
  line-height: .94;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.v-service-mlp .vsp-hero__lead {
  max-width: 780px;
  margin: 0 0 30px;
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.62;
  color: rgba(255,255,255,.90);
}

.v-service-mlp .vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.v-service-mlp .vsp-hero__aside {
  display: flex;
  justify-content: flex-end;
  align-self: center;
  width: 100%;
  position: relative;
  z-index: 2;
  margin-left: auto;
}

.v-service-mlp .vsp-info-card {
  width: min(100%, 470px);
  margin-left: auto;
  padding: 30px 30px;
  border-radius: 26px;
  background: linear-gradient(
      180deg,
      rgba(255,255,255,.34) 0%,
      rgba(255,255,255,.24) 100%
    );
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 18px 50px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.24);
  backdrop-filter: blur(16px) saturate(1.06);
  -webkit-backdrop-filter: blur(16px) saturate(1.06);
}

.v-service-mlp .vsp-info-card h2 {
  margin: 0 0 14px;
  max-width: 100%;
  font-size: clamp(26px, 2vw, 34px);
  line-height: 1.08;
  letter-spacing: -.03em;
  color: rgba(255,255,255,.97);
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
}

.v-service-mlp .vsp-info-card p {
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 1.68;
  color: rgba(255,255,255,.90);
}

.v-service-mlp .vsp-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.v-service-mlp .vsp-checks li {
  position: relative;
  padding-left: 24px;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255,255,255,.90);
}

.v-service-mlp .vsp-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8fbc57;
  box-shadow: 0 0 0 4px rgba(143,188,87,.14);
  transform: translateY(-50%);
}

.v-service-lvr .vsp-hero {
  position: relative;
  overflow: hidden;
}

.v-service-lvr .vsp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.46fr) minmax(360px, 0.54fr);
  gap: 46px;
  align-items: center;
  padding-top: 84px;
  padding-bottom: 34px;
}

.v-service-lvr .vsp-hero__content {
  min-width: 0;
  max-width: 880px;
  position: relative;
  z-index: 2;
}

.v-service-lvr .vsp-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}

.v-service-lvr .vsp-brand {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .10em;
}

.v-service-lvr .vsp-brand__e {
  color: var(--c-green-l);
}

.v-service-lvr .vsp-kicker__dot {
  opacity: .22;
}

.v-service-lvr .vsp-kicker__text {
  font-size: 14px;
  color: rgba(255,255,255,.82);
}

.v-service-lvr .vsp-hero__title {
  max-width: 860px;
  margin: 0 0 22px;
  font-size: clamp(44px, 5.2vw, 74px);
  line-height: .94;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.v-service-lvr .vsp-hero__lead {
  max-width: 760px;
  margin: 0 0 30px;
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.62;
  color: rgba(255,255,255,.90);
}

.v-service-lvr .vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.v-service-lvr .vsp-hero__aside {
  display: flex;
  justify-content: flex-end;
  align-self: center;
  width: 100%;
  position: relative;
  z-index: 2;
  margin-left: auto;
}

.v-service-lvr .vsp-info-card {
  width: min(100%, 470px);
  margin-left: auto;
  padding: 30px 30px;
  border-radius: 26px;
  background: linear-gradient(
      180deg,
      rgba(255,255,255,.34) 0%,
      rgba(255,255,255,.24) 100%
    );
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 18px 50px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.24);
  backdrop-filter: blur(16px) saturate(1.06);
  -webkit-backdrop-filter: blur(16px) saturate(1.06);
}

.v-service-lvr .vsp-info-card h2 {
  margin: 0 0 14px;
  max-width: 100%;
  font-size: clamp(26px, 2vw, 34px);
  line-height: 1.08;
  letter-spacing: -.03em;
  color: rgba(255,255,255,.97);
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
}

.v-service-lvr .vsp-info-card p {
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 1.68;
  color: rgba(255,255,255,.90);
}

.v-service-lvr .vsp-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.v-service-lvr .vsp-checks li {
  position: relative;
  padding-left: 24px;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255,255,255,.90);
}

.v-service-lvr .vsp-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8fbc57;
  box-shadow: 0 0 0 4px rgba(143,188,87,.14);
  transform: translateY(-50%);
}

.v-service-kvr .vsp-hero {
  position: relative;
  overflow: hidden;
}

.v-service-kvr .vsp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.46fr) minmax(360px, 0.54fr);
  gap: 46px;
  align-items: center;
  padding-top: 84px;
  padding-bottom: 34px;
}

.v-service-kvr .vsp-hero__content {
  min-width: 0;
  max-width: 880px;
  position: relative;
  z-index: 2;
}

.v-service-kvr .vsp-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}

.v-service-kvr .vsp-brand {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .10em;
}

.v-service-kvr .vsp-brand__e {
  color: var(--c-green-l);
}

.v-service-kvr .vsp-kicker__dot {
  opacity: .22;
}

.v-service-kvr .vsp-kicker__text {
  font-size: 14px;
  color: rgba(255,255,255,.82);
}

.v-service-kvr .vsp-hero__title {
  max-width: 860px;
  margin: 0 0 22px;
  font-size: clamp(44px, 5.2vw, 74px);
  line-height: .94;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.v-service-kvr .vsp-hero__lead {
  max-width: 760px;
  margin: 0 0 30px;
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.62;
  color: rgba(255,255,255,.90);
}

.v-service-kvr .vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.v-service-kvr .vsp-hero__aside {
  display: flex;
  justify-content: flex-end;
  align-self: center;
  width: 100%;
  position: relative;
  z-index: 2;
  margin-left: auto;
}

.v-service-kvr .vsp-info-card {
  width: min(100%, 470px);
  margin-left: auto;
  padding: 30px 30px;
  border-radius: 26px;
  background: linear-gradient(
      180deg,
      rgba(255,255,255,.34) 0%,
      rgba(255,255,255,.24) 100%
    );
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 18px 50px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.24);
  backdrop-filter: blur(16px) saturate(1.06);
  -webkit-backdrop-filter: blur(16px) saturate(1.06);
}

.v-service-kvr .vsp-info-card h2 {
  margin: 0 0 14px;
  max-width: 100%;
  font-size: clamp(26px, 2vw, 34px);
  line-height: 1.08;
  letter-spacing: -.03em;
  color: rgba(255,255,255,.97);
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
}

.v-service-kvr .vsp-info-card p {
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 1.68;
  color: rgba(255,255,255,.90);
}

.v-service-kvr .vsp-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.v-service-kvr .vsp-checks li {
  position: relative;
  padding-left: 24px;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255,255,255,.90);
}

.v-service-kvr .vsp-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8fbc57;
  box-shadow: 0 0 0 4px rgba(143,188,87,.14);
  transform: translateY(-50%);
}

.v-service-waterguard .vsp-hero {
  position: relative;
  overflow: hidden;
}

.v-service-waterguard .vsp-hero__bg {
  position: absolute;
  inset: 0;
  background-image: var(--service-hero);
  background-size: cover;
  background-position: center center;
  transform: scale(1.01);
}

.v-service-waterguard .vsp-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
      90deg,
      rgba(19, 28, 42, .78) 0%,
      rgba(19, 28, 42, .58) 26%,
      rgba(19, 28, 42, .28) 54%,
      rgba(19, 28, 42, .10) 76%,
      rgba(19, 28, 42, .04) 100%
    ),
    linear-gradient(
      180deg,
      rgba(10, 15, 24, .08) 0%,
      rgba(10, 15, 24, .00) 32%,
      rgba(10, 15, 24, .12) 100%
    );
}

.v-service-waterguard .vsp-shell {
  position: relative;
  z-index: 2;
}

.v-service-waterguard .vsp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.44fr) minmax(320px, 0.56fr);
  gap: 42px;
  align-items: start;
  padding-top: 84px;
  padding-bottom: 28px;
}

.v-service-waterguard .vsp-hero__content {
  min-width: 0;
  max-width: 900px;
  position: relative;
  z-index: 2;
}

.v-service-waterguard .vsp-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 22px;
}

.v-service-waterguard .vsp-brand {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .10em;
  color: rgba(255,255,255,.96);
}

.v-service-waterguard .vsp-brand__e {
  color: var(--c-green-l);
}

.v-service-waterguard .vsp-kicker__dot {
  opacity: .22;
  color: rgba(255,255,255,.55);
}

.v-service-waterguard .vsp-kicker__text {
  font-size: 14px;
  color: rgba(255,255,255,.82);
}

.v-service-waterguard .vsp-hero__title {
  max-width: 920px;
  margin: 0 0 22px;
  font-size: clamp(46px, 5.35vw, 76px);
  line-height: .94;
  letter-spacing: -.045em;
  color: rgba(255,255,255,.98);
  text-wrap: balance;
  text-shadow: 0 6px 26px rgba(0,0,0,.28);
}

.v-service-waterguard .vsp-hero__lead {
  max-width: 860px;
  margin: 0 0 30px;
  font-size: clamp(17px, 1.36vw, 20px);
  line-height: 1.64;
  color: rgba(255,255,255,.90);
}

.v-service-waterguard .vsp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 22px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  font-size: .98rem;
  transition: transform .18s ease,
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease,
    box-shadow .18s ease;
}

.v-service-waterguard .vsp-btn:hover {
  transform: translateY(-2px);
}

.v-service-waterguard .vsp-btn--primary {
  background: var(--vsp-blue);
  color: #fff;
  box-shadow: 0 12px 26px rgba(29,78,216,.22);
}

.v-service-waterguard .vsp-btn--primary:hover {
  background: var(--vsp-blue-dark);
}

.v-service-waterguard .vsp-btn--ghost {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
}

.v-service-waterguard .vsp-btn--ghost:hover {
  background: rgba(255,255,255,.08);
}

.v-service-waterguard .vsp-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.v-service-waterguard .vsp-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 18px;
  border-radius: 22px;
  overflow: hidden;
  background: rgba(11, 18, 30, .70);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 18px 42px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.v-service-waterguard .vsp-stat {
  padding: 22px 26px 20px;
  border-right: 1px solid rgba(255,255,255,.08);
}

.v-service-waterguard .vsp-stat:last-child {
  border-right: 0;
}

.v-service-waterguard .vsp-stat strong {
  display: block;
  margin-bottom: 10px;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.98);
}

.v-service-waterguard .vsp-stat span {
  display: block;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,.80);
}

@media (min-width: 1280px) {
  .v-service-ivlp .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.72fr) minmax(300px, 0.48fr);
    gap: 30px;
  }

  .v-service-ivlp .vsp-hero__title {
    max-width: 1200px;
    font-size: clamp(44px, 4vw, 76px);
  }

  .v-service-ivlp .vsp-hero__lead {
    max-width: 800px;
  }

  .v-service-ivlp .vsp-info-card {
    width: min(100%, 350px);
  }

  .v-service-ilp .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.48fr) minmax(380px, 0.52fr);
    gap: 48px;
  }

  .v-service-ilp .vsp-hero__title {
    max-width: 900px;
  }

  .v-service-ilp .vsp-info-card {
    width: min(100%, 490px);
  }

  .v-service-ilp .vsp-info-card h2 {
    font-size: clamp(28px, 1.95vw, 36px);
  }

  .v-service-mlp .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.48fr) minmax(380px, 0.52fr);
    gap: 48px;
  }

  .v-service-mlp .vsp-hero__title {
    max-width: 900px;
  }

  .v-service-mlp .vsp-info-card {
    width: min(100%, 490px);
  }

  .v-service-mlp .vsp-info-card h2 {
    font-size: clamp(28px, 1.95vw, 36px);
  }

  .v-service-lvr .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.48fr) minmax(380px, 0.52fr);
    gap: 48px;
  }

  .v-service-lvr .vsp-hero__title {
    max-width: 900px;
  }

  .v-service-lvr .vsp-info-card {
    width: min(100%, 490px);
  }

  .v-service-lvr .vsp-info-card h2 {
    font-size: clamp(28px, 1.95vw, 36px);
  }

  .v-service-kvr .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.48fr) minmax(380px, 0.52fr);
    gap: 48px;
  }

  .v-service-kvr .vsp-hero__title {
    max-width: 900px;
  }

  .v-service-kvr .vsp-info-card {
    width: min(100%, 490px);
  }

  .v-service-kvr .vsp-info-card h2 {
    font-size: clamp(28px, 1.95vw, 36px);
  }

  .v-service-waterguard .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.48fr) minmax(360px, 0.52fr);
    gap: 48px;
  }

  .v-service-waterguard .vsp-hero__title {
    max-width: 940px;
  }

  .v-service-waterguard .vsp-info-card {
    width: min(100%, 490px);
  }

}

@media (max-width: 1240px) {
  .v-service-ilp .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.34fr) minmax(340px, 0.66fr);
    gap: 34px;
  }

  .v-service-ilp .vsp-info-card {
    width: min(100%, 430px);
  }

  .v-service-ilp .vsp-info-card h2 {
    font-size: clamp(24px, 2.2vw, 30px);
  }

  .v-service-mlp .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.34fr) minmax(340px, 0.66fr);
    gap: 34px;
  }

  .v-service-mlp .vsp-info-card {
    width: min(100%, 430px);
  }

  .v-service-mlp .vsp-info-card h2 {
    font-size: clamp(24px, 2.2vw, 30px);
  }

  .v-service-lvr .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.34fr) minmax(340px, 0.66fr);
    gap: 34px;
  }

  .v-service-lvr .vsp-info-card {
    width: min(100%, 430px);
  }

  .v-service-lvr .vsp-info-card h2 {
    font-size: clamp(24px, 2.2vw, 30px);
  }

  .v-service-kvr .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.34fr) minmax(340px, 0.66fr);
    gap: 34px;
  }

  .v-service-kvr .vsp-info-card {
    width: min(100%, 430px);
  }

  .v-service-kvr .vsp-info-card h2 {
    font-size: clamp(24px, 2.2vw, 30px);
  }

  .v-service-waterguard .vsp-hero__inner {
    grid-template-columns: minmax(0, 1.34fr) minmax(320px, 0.66fr);
    gap: 34px;
  }

  .v-service-waterguard .vsp-info-card {
    width: min(100%, 430px);
  }

  .v-service-waterguard .vsp-info-card h2 {
    font-size: clamp(24px, 2.2vw, 30px);
  }

}

.v-service-waterguard .vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.v-service-waterguard .vsp-hero__actions .v-btn {
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.96rem;
  box-shadow: none;
  transform: none;
}

.v-service-waterguard .vsp-hero__actions .v-btn:hover {
  transform: translateY(-1px);
}

.v-service-waterguard .vsp-hero__actions .v-btn--primary {
  box-shadow: 0 12px 26px rgba(27, 78, 216, 0.28),
    inset 0 1px 0 rgba(255,255,255,0.10);
}

.v-service-waterguard .vsp-hero__actions .v-btn--ghost {
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.18);
  color: #ffffff;
}

.v-service-waterguard .vsp-hero__actions .v-btn--ghost:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.26);
}

.vsp-fit-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  margin-top: 30px;
}

.vsp-fit-item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 18px;
  align-items: start;
  padding: 24px 0;
  border-top: 1px solid rgba(22,29,42,.10);
}

.vsp-fit-item:last-child {
  border-bottom: 1px solid rgba(22,29,42,.10);
}

.vsp-fit-item__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(79,111,47,.10);
  color: var(--vsp-green);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: .08em;
}

.vsp-fit-item__content h3 {
  margin: 0 0 8px;
}

.vsp-fit-item__content p {
  margin: 0;
}

.vsp-benefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px 30px;
  margin-top: 30px;
}

.vsp-benefit {
  padding: 0 0 18px;
  border-bottom: 1px solid rgba(22,29,42,.10);
}

.vsp-benefit h3 {
  margin: 0 0 10px;
  position: relative;
  padding-left: 18px;
}

.vsp-benefit h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .6em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--vsp-green);
  transform: translateY(-50%);
}

.vsp-benefit p {
  margin: 0;
}

.vsp-note h3,
.vsp-note p,
.vsp-note li {
  color: inherit;
}

.vsp-timeline {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 18px;
  margin-top: 30px;
}

.vsp-timeline__item {
  min-width: 0;
}

.vsp-timeline__top {
  display: flex;
  align-items: center;
  margin-bottom: 14px;
}

.vsp-timeline__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--vsp-green);
  flex: 0 0 14px;
  box-shadow: 0 0 0 6px rgba(79,111,47,.10);
}

.vsp-timeline__line {
  height: 2px;
  flex: 1;
  margin-left: 10px;
  background: rgba(22,29,42,.12);
}

.vsp-timeline__body {
  background: #fff;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  padding: 22px 18px;
  box-shadow: 0 10px 26px rgba(15,23,42,.06);
  min-height: 100%;
}

.vsp-timeline__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(79,111,47,.10);
  color: var(--vsp-green);
  font-weight: 800;
  font-size: 14px;
  margin-bottom: 12px;
}

.vsp-timeline__body h3 {
  margin: 0 0 8px;
}

.vsp-timeline__body p {
  margin: 0;
}

.vsp-calc--full {
  display: block;
  margin-top: 30px;
}

.vsp-calc--full .vsp-calc__box {
  width: 100%;
}

.vsp-calc--full iframe {
  display: block;
  width: 100%;
  background: #fff;
  box-shadow: 0 18px 44px rgba(15,23,42,.08);
}

.v-service-ivlp .vsp-fit-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
}

.v-service-ivlp .vsp-fit-card {
  position: relative;
  min-width: 0;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-ivlp .vsp-fit-card__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-ivlp .vsp-fit-card__icon::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-ivlp .vsp-fit-card h3 {
  margin: 0;
  font-size: clamp(18px,1.5vw,22px);
  line-height: 1.22;
  letter-spacing: -.015em;
  color: #1f2a44;
}

.v-service-ivlp .vsp-fit-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.68;
  color: rgba(31,42,68,0.85);
}

/* Kortit ilman body-tekstiä → pienempi padding */
.v-service-ivlp .vsp-fit-card:not(:has(p)) {
  padding: 20px 22px;
}

.v-service-ivlp .vsp-section--warm {
  padding-top: 70px;
  padding-bottom: 70px;
}

.v-service-ivlp .vsp-section-head--wide {
  max-width: none;
  text-align: left;
  margin-bottom: 0;
}

.v-service-ivlp .vsp-section-head--wide h2 {
  margin: 0;
  max-width: none;
  text-align: left;
  white-space: nowrap;
  font-size: clamp(34px,3.1vw,50px);
  line-height: 1.03;
  letter-spacing: -.03em;
  color: #1f2a44;
}

.v-service-ivlp .vsp-benefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px 34px;
  margin-top: 24px;
}

.v-service-ivlp .vsp-benefit {
  position: relative;
  padding: 0 0 18px;
  border-bottom: 1px solid rgba(22,29,42,.08);
}

.v-service-ivlp .vsp-benefit h3 {
  position: relative;
  margin: 0 0 10px;
  padding-left: 28px;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-ivlp .vsp-benefit h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f5f6f0;
  border: 2px solid #93ad62;
  box-shadow: 0 0 0 5px rgba(147,173,98,.08);
  transform: translateY(-50%);
}

.v-service-ivlp .vsp-benefit p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-ivlp .vsp-section.vsp-section--warm {
  padding-top: 110px;
  padding-bottom: 70px;
}

.vsp-section-head--brand {
  max-width: 920px;
}

.vsp-brand-title {
  font-size: clamp(44px,4.5vw,64px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin: 0 0 18px;
  font-weight: 800;
  color: #2a3138;
}

.vsp-brand-title .vsp-brand__e {
  color: #7D9646;
}

.vsp-brand-lead {
  font-size: clamp(18px,1.2vw,20px);
  line-height: 1.7;
  color: #4c5a6a;
  margin: 0;
  max-width: 760px;
}

.vsp-note {
  position: sticky;
  top: 28px;
  padding: 24px;
  border-radius: 24px;
  color: var(--vsp-text);
  background: #f8f8f4;
  border: 1px solid rgba(22,29,42,.08);
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.vsp-note h3 {
  margin: 0 0 14px;
  font-size: 1.2rem;
  line-height: 1.2;
  color: #27303d;
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.vsp-note .vsp-checks,
.vsp-note .vsp-checks li,
.vsp-note ul,
.vsp-note li,
.vsp-note p,
.vsp-note span {
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.vsp-note .vsp-checks li::marker {
  color: #93ad62 !important;
}

.v-service-ivlp .vsp-split__side {
  padding-top: 42px;
}

.v-service-ivlp .vsp-section--soft .vsp-grid.vsp-grid--2 {
  gap: 22px;
}

.v-service-ivlp .vsp-calc__box {
  box-shadow: 0 20px 50px rgba(20,30,50,0.12);
}

.v-service-ivlp .vsp-section--accent {
  padding-top: 110px;
  padding-bottom: 110px;
}

.v-service-ilp {
  background: #f5f6f2;
}

.v-service-ilp .vsp-section {
  position: relative;
}

.v-service-ilp .vsp-section--mineral {
  background: #f3f5ef;
  padding-top: 70px;
  padding-bottom: 70px;
}

.v-service-ilp .vsp-section--warm {
  padding-top: 110px;
  padding-bottom: 70px;
}

.v-service-ilp .vsp-section--soft {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-ilp .vsp-section--accent {
  background: #e9eee6;
  padding-top: 110px;
  padding-bottom: 110px;
}

.v-service-ilp .v-steps--process {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-ilp .vsp-section--faq {
  background: #f7f8f4;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-ilp .vsp-section--cta {
  background: radial-gradient(circle at left top, rgba(79,111,47,.18), transparent 35%),
    linear-gradient(135deg, #0f1a2c 0%, #0d2347 55%, #17315d 100%);
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-ilp .vsp-section--mineral .vsp-section-head {
  max-width: 860px;
}

.v-service-ilp .vsp-section--mineral .vsp-section-head h2 {
  margin: 0 0 10px;
}

.v-service-ilp .vsp-section--mineral .vsp-section-head p {
  margin: 0;
}

.v-service-ilp .vsp-fit-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
}

.v-service-ilp .vsp-fit-card {
  position: relative;
  min-width: 0;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-ilp .vsp-fit-card__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-ilp .vsp-fit-card__icon::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-ilp .vsp-fit-card h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-ilp .vsp-fit-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-ilp .vsp-fit-list {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
  border-top: 0;
}

.v-service-ilp .vsp-fit-item {
  display: block;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-ilp .vsp-fit-item .vsp-fit-icon,
.v-service-ilp .vsp-fit-item .vsp-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 0 0 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-ilp .vsp-fit-item .vsp-fit-icon::before,
.v-service-ilp .vsp-fit-item .vsp-check::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-ilp .vsp-fit-item__content h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-ilp .vsp-fit-item__content p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-ilp .vsp-section-head--wide {
  max-width: none;
  text-align: left;
  margin-bottom: 0;
}

.v-service-ilp .vsp-section-head--wide h2 {
  margin: 0;
  max-width: none;
  text-align: left;
  white-space: nowrap;
  font-size: clamp(34px,3.1vw,50px);
  line-height: 1.03;
  letter-spacing: -.03em;
  color: #1f2a44;
}

.v-service-ilp .vsp-benefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px 34px;
  margin-top: 24px;
}

.v-service-ilp .vsp-benefit {
  position: relative;
  padding: 0 0 18px;
  border-bottom: 1px solid rgba(22,29,42,.08);
}

.v-service-ilp .vsp-benefit h3 {
  position: relative;
  margin: 0 0 10px;
  padding-left: 28px;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-ilp .vsp-benefit h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f5f6f0;
  border: 2px solid #93ad62;
  box-shadow: 0 0 0 5px rgba(147,173,98,.08);
  transform: translateY(-50%);
}

.v-service-ilp .vsp-benefit p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-ilp .vsp-split {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(280px,.72fr);
  gap: 34px;
  align-items: start;
}

.v-service-ilp .vsp-split__main {
  min-width: 0;
}

.v-service-ilp .vsp-split__side {
  min-width: 0;
  padding-top: 42px;
}

.v-service-ilp .vsp-section-head--brand {
  max-width: 920px;
  margin-bottom: 26px;
}

.v-service-ilp .vsp-brand-title {
  margin: 0 0 18px;
  font-size: clamp(44px,4.5vw,64px);
  line-height: 1.02;
  letter-spacing: -.03em;
  font-weight: 800;
  color: #2a3138;
}

.v-service-ilp .vsp-brand-title .vsp-brand__e {
  color: #7D9646;
}

.v-service-ilp .vsp-brand-lead {
  margin: 0;
  max-width: 760px;
  font-size: clamp(18px,1.2vw,20px);
  line-height: 1.7;
  color: #4c5a6a;
}

.v-service-ilp .vsp-section--soft .vsp-grid.vsp-grid--2 {
  gap: 22px;
}

.v-service-ilp .vsp-section--soft .vsp-card {
  min-height: 100%;
  padding: 22px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 24px rgba(15,23,42,.045);
}

.v-service-ilp .vsp-section--soft .vsp-card h3 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-ilp .vsp-section--soft .vsp-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-ilp .vsp-note {
  padding: 22px 20px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: #f8f8f4;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.v-service-ilp .vsp-note h3,
.v-service-ilp .vsp-note p,
.v-service-ilp .vsp-note ul,
.v-service-ilp .vsp-note li,
.v-service-ilp .vsp-note span,
.v-service-ilp .vsp-note .vsp-checks,
.v-service-ilp .vsp-note .vsp-checks li {
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.v-service-ilp .vsp-note .vsp-checks li::marker {
  color: #93ad62 !important;
}

.v-service-ilp .vsp-calc {
  margin-top: 0;
}

.v-service-ilp .vsp-section--accent .vsp-shell {
  max-width: 1180px;
}

.v-service-ilp .vsp-calc__box {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  min-height: 420px;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(20,30,50,.12);
  overflow: hidden;
}

.v-service-ilp .vsp-calc-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 420px;
  padding: 64px 48px;
}

.v-service-ilp .vsp-calc-placeholder h3 {
  margin: 0 0 14px;
  font-size: clamp(30px,2.2vw,38px);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-ilp .vsp-calc-placeholder p {
  max-width: 620px;
  margin: 0 auto 16px;
  font-size: 16px;
  line-height: 1.75;
  color: rgba(31,42,68,.88);
}

.v-service-ilp .vsp-calc-placeholder .vsp-hero__actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 24px;
}

.v-service-ilp .v-steps__header {
  margin-bottom: 30px;
}

.v-service-ilp .v-steps__title {
  max-width: 820px;
}

.v-service-ilp .v-steps__lead {
  max-width: 720px;
}

.v-service-mlp {
  background: #f5f6f2;
}

.v-service-mlp .vsp-section {
  position: relative;
}

.v-service-mlp .vsp-section--mineral {
  background: #f3f5ef;
  padding-top: 70px;
  padding-bottom: 70px;
}

.v-service-mlp .vsp-section--warm {
  padding-top: 110px;
  padding-bottom: 70px;
}

.v-service-mlp .vsp-section--soft {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-mlp .vsp-section--accent {
  background: #e9eee6;
  padding-top: 110px;
  padding-bottom: 110px;
}

.v-service-mlp .v-steps--process {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-mlp .vsp-section--faq {
  background: #f7f8f4;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-mlp .vsp-section--cta {
  background: radial-gradient(circle at left top, rgba(79,111,47,.18), transparent 35%),
    linear-gradient(135deg, #0f1a2c 0%, #0d2347 55%, #17315d 100%);
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-mlp .vsp-section--mineral .vsp-section-head {
  max-width: 860px;
}

.v-service-mlp .vsp-section--mineral .vsp-section-head h2 {
  margin: 0 0 10px;
}

.v-service-mlp .vsp-section--mineral .vsp-section-head p {
  margin: 0;
}

.v-service-mlp .vsp-fit-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
}

.v-service-mlp .vsp-fit-card {
  position: relative;
  min-width: 0;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-mlp .vsp-fit-card__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-mlp .vsp-fit-card__icon::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-mlp .vsp-fit-card h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-mlp .vsp-fit-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-mlp .vsp-fit-list {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
  border-top: 0;
}

.v-service-mlp .vsp-fit-item {
  display: block;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-mlp .vsp-fit-item .vsp-fit-icon,
.v-service-mlp .vsp-fit-item .vsp-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 0 0 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-mlp .vsp-fit-item .vsp-fit-icon::before,
.v-service-mlp .vsp-fit-item .vsp-check::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-mlp .vsp-fit-item__content h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-mlp .vsp-fit-item__content p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-mlp .vsp-section-head--wide {
  max-width: none;
  text-align: left;
  margin-bottom: 0;
}

.v-service-mlp .vsp-section-head--wide h2 {
  margin: 0;
  max-width: none;
  text-align: left;
  white-space: nowrap;
  font-size: clamp(34px,3.1vw,50px);
  line-height: 1.03;
  letter-spacing: -.03em;
  color: #1f2a44;
}

.v-service-mlp .vsp-benefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px 34px;
  margin-top: 24px;
}

.v-service-mlp .vsp-benefit {
  position: relative;
  padding: 0 0 18px;
  border-bottom: 1px solid rgba(22,29,42,.08);
}

.v-service-mlp .vsp-benefit h3 {
  position: relative;
  margin: 0 0 10px;
  padding-left: 28px;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-mlp .vsp-benefit h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f5f6f0;
  border: 2px solid #93ad62;
  box-shadow: 0 0 0 5px rgba(147,173,98,.08);
  transform: translateY(-50%);
}

.v-service-mlp .vsp-benefit p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-mlp .vsp-split {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(280px,.72fr);
  gap: 34px;
  align-items: start;
}

.v-service-mlp .vsp-split__main {
  min-width: 0;
}

.v-service-mlp .vsp-split__side {
  min-width: 0;
  padding-top: 42px;
}

.v-service-mlp .vsp-section-head--brand {
  max-width: 920px;
  margin-bottom: 26px;
}

.v-service-mlp .vsp-brand-title {
  margin: 0 0 18px;
  font-size: clamp(44px,4.5vw,64px);
  line-height: 1.02;
  letter-spacing: -.03em;
  font-weight: 800;
  color: #2a3138;
}

.v-service-mlp .vsp-brand-title .vsp-brand__e {
  color: #7D9646;
}

.v-service-mlp .vsp-brand-lead {
  margin: 0;
  max-width: 760px;
  font-size: clamp(18px,1.2vw,20px);
  line-height: 1.7;
  color: #4c5a6a;
}

.v-service-mlp .vsp-section--soft .vsp-grid.vsp-grid--2 {
  gap: 22px;
}

.v-service-mlp .vsp-section--soft .vsp-card {
  min-height: 100%;
  padding: 22px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 24px rgba(15,23,42,.045);
}

.v-service-mlp .vsp-section--soft .vsp-card h3 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-mlp .vsp-section--soft .vsp-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-mlp .vsp-note {
  padding: 22px 20px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: #f8f8f4;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.v-service-mlp .vsp-note h3,
.v-service-mlp .vsp-note p,
.v-service-mlp .vsp-note ul,
.v-service-mlp .vsp-note li,
.v-service-mlp .vsp-note span,
.v-service-mlp .vsp-note .vsp-checks,
.v-service-mlp .vsp-note .vsp-checks li {
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.v-service-mlp .vsp-note .vsp-checks li::marker {
  color: #93ad62 !important;
}

.v-service-mlp .vsp-calc {
  margin-top: 0;
}

.v-service-mlp .vsp-section--accent .vsp-shell {
  max-width: 1180px;
}

.v-service-mlp .vsp-calc__box {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  min-height: 420px;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(20,30,50,.12);
  overflow: hidden;
}

.v-service-mlp .vsp-calc-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 420px;
  padding: 64px 48px;
}

.v-service-mlp .vsp-calc-placeholder h3 {
  margin: 0 0 14px;
  font-size: clamp(30px,2.2vw,38px);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-mlp .vsp-calc-placeholder p {
  max-width: 620px;
  margin: 0 auto 16px;
  font-size: 16px;
  line-height: 1.75;
  color: rgba(31,42,68,.88);
}

.v-service-mlp .vsp-calc-placeholder .vsp-hero__actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 24px;
}

.v-service-mlp .v-steps__header {
  margin-bottom: 30px;
}

.v-service-mlp .v-steps__title {
  max-width: 820px;
}

.v-service-mlp .v-steps__lead {
  max-width: 720px;
}

.v-service-lvr {
  background: #f5f6f2;
}

.v-service-lvr .vsp-section {
  position: relative;
}

.v-service-lvr .vsp-section--mineral {
  background: #f3f5ef;
  padding-top: 70px;
  padding-bottom: 70px;
}

.v-service-lvr .vsp-section--warm {
  padding-top: 110px;
  padding-bottom: 70px;
}

.v-service-lvr .vsp-section--soft {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-lvr .vsp-section--accent {
  background: #e9eee6;
  padding-top: 110px;
  padding-bottom: 110px;
}

.v-service-lvr .v-steps--process {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-lvr .vsp-section--faq {
  background: #f7f8f4;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-lvr .vsp-section--cta {
  background: radial-gradient(circle at left top, rgba(79,111,47,.18), transparent 35%),
    linear-gradient(135deg, #0f1a2c 0%, #0d2347 55%, #17315d 100%);
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-lvr .vsp-section--mineral .vsp-section-head {
  max-width: 860px;
}

.v-service-lvr .vsp-section--mineral .vsp-section-head h2 {
  margin: 0 0 10px;
}

.v-service-lvr .vsp-section--mineral .vsp-section-head p {
  margin: 0;
}

.v-service-lvr .vsp-fit-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
}

.v-service-lvr .vsp-fit-card {
  position: relative;
  min-width: 0;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-lvr .vsp-fit-card__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-lvr .vsp-fit-card__icon::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-lvr .vsp-fit-card h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-lvr .vsp-fit-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-lvr .vsp-fit-list {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
  border-top: 0;
}

.v-service-lvr .vsp-fit-item {
  display: block;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-lvr .vsp-fit-item .vsp-fit-icon,
.v-service-lvr .vsp-fit-item .vsp-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 0 0 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-lvr .vsp-fit-item .vsp-fit-icon::before,
.v-service-lvr .vsp-fit-item .vsp-check::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-lvr .vsp-fit-item__content h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-lvr .vsp-fit-item__content p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-lvr .vsp-section-head--wide {
  max-width: none;
  text-align: left;
  margin-bottom: 0;
}

.v-service-lvr .vsp-section-head--wide h2 {
  margin: 0;
  max-width: none;
  text-align: left;
  white-space: nowrap;
  font-size: clamp(34px,3.1vw,50px);
  line-height: 1.03;
  letter-spacing: -.03em;
  color: #1f2a44;
}

.v-service-lvr .vsp-benefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px 34px;
  margin-top: 24px;
}

.v-service-lvr .vsp-benefit {
  position: relative;
  padding: 0 0 18px;
  border-bottom: 1px solid rgba(22,29,42,.08);
}

.v-service-lvr .vsp-benefit h3 {
  position: relative;
  margin: 0 0 10px;
  padding-left: 28px;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-lvr .vsp-benefit h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f5f6f0;
  border: 2px solid #93ad62;
  box-shadow: 0 0 0 5px rgba(147,173,98,.08);
  transform: translateY(-50%);
}

.v-service-lvr .vsp-benefit p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-lvr .vsp-split {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(280px,.72fr);
  gap: 34px;
  align-items: start;
}

.v-service-lvr .vsp-split__main {
  min-width: 0;
}

.v-service-lvr .vsp-split__side {
  min-width: 0;
  padding-top: 42px;
}

.v-service-lvr .vsp-section-head--brand {
  max-width: 920px;
  margin-bottom: 26px;
}

.v-service-lvr .vsp-brand-title {
  margin: 0 0 18px;
  font-size: clamp(44px,4.5vw,64px);
  line-height: 1.02;
  letter-spacing: -.03em;
  font-weight: 800;
  color: #2a3138;
}

.v-service-lvr .vsp-brand-title .vsp-brand__e {
  color: #7D9646;
}

.v-service-lvr .vsp-brand-lead {
  margin: 0;
  max-width: 760px;
  font-size: clamp(18px,1.2vw,20px);
  line-height: 1.7;
  color: #4c5a6a;
}

.v-service-lvr .vsp-section--soft .vsp-grid.vsp-grid--2 {
  gap: 22px;
}

.v-service-lvr .vsp-section--soft .vsp-card {
  min-height: 100%;
  padding: 22px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 24px rgba(15,23,42,.045);
}

.v-service-lvr .vsp-section--soft .vsp-card h3 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-lvr .vsp-section--soft .vsp-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-lvr .vsp-note {
  padding: 22px 20px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: #f8f8f4;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.v-service-lvr .vsp-note h3,
.v-service-lvr .vsp-note p,
.v-service-lvr .vsp-note ul,
.v-service-lvr .vsp-note li,
.v-service-lvr .vsp-note span,
.v-service-lvr .vsp-note .vsp-checks,
.v-service-lvr .vsp-note .vsp-checks li {
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.v-service-lvr .vsp-note .vsp-checks li::marker {
  color: #93ad62 !important;
}

.v-service-lvr .vsp-calc {
  margin-top: 0;
}

.v-service-lvr .vsp-section--accent .vsp-shell {
  max-width: 1180px;
}

.v-service-lvr .vsp-calc__box {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  min-height: 420px;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(20,30,50,.12);
  overflow: hidden;
}

.v-service-lvr .vsp-calc-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 420px;
  padding: 64px 48px;
}

.v-service-lvr .vsp-calc-placeholder h3 {
  margin: 0 0 14px;
  font-size: clamp(30px,2.2vw,38px);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-lvr .vsp-calc-placeholder p {
  max-width: 620px;
  margin: 0 auto 16px;
  font-size: 16px;
  line-height: 1.75;
  color: rgba(31,42,68,.88);
}

.v-service-lvr .vsp-calc-placeholder .vsp-hero__actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 24px;
}

.v-service-lvr .v-steps__header {
  margin-bottom: 30px;
}

.v-service-lvr .v-steps__title {
  max-width: 820px;
}

.v-service-lvr .v-steps__lead {
  max-width: 720px;
}

.v-service-kvr {
  background: #f5f6f2;
}

.v-service-kvr .vsp-section {
  position: relative;
}

.v-service-kvr .vsp-section--mineral {
  background: #f3f5ef;
  padding-top: 70px;
  padding-bottom: 70px;
}

.v-service-kvr .vsp-section--warm {
  padding-top: 110px;
  padding-bottom: 70px;
}

.v-service-kvr .vsp-section--soft {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-kvr .vsp-section--accent {
  background: #e9eee6;
  padding-top: 110px;
  padding-bottom: 110px;
}

.v-service-kvr .v-steps--process {
  background: #eef2eb;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-kvr .vsp-section--faq {
  background: #f7f8f4;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-kvr .vsp-section--cta {
  background: radial-gradient(circle at left top, rgba(79,111,47,.18), transparent 35%),
    linear-gradient(135deg, #0f1a2c 0%, #0d2347 55%, #17315d 100%);
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-kvr .vsp-section--mineral .vsp-section-head {
  max-width: 860px;
}

.v-service-kvr .vsp-section--mineral .vsp-section-head h2 {
  margin: 0 0 10px;
}

.v-service-kvr .vsp-section--mineral .vsp-section-head p {
  margin: 0;
}

.v-service-kvr .vsp-fit-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
}

.v-service-kvr .vsp-fit-card {
  position: relative;
  min-width: 0;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-kvr .vsp-fit-card__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-kvr .vsp-fit-card__icon::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-kvr .vsp-fit-card h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-kvr .vsp-fit-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-kvr .vsp-fit-list {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
  border-top: 0;
}

.v-service-kvr .vsp-fit-item {
  display: block;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.58);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
  backdrop-filter: blur(2px);
}

.v-service-kvr .vsp-fit-item .vsp-fit-icon,
.v-service-kvr .vsp-fit-item .vsp-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 0 0 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-kvr .vsp-fit-item .vsp-fit-icon::before,
.v-service-kvr .vsp-fit-item .vsp-check::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-kvr .vsp-fit-item__content h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.7vw,28px);
  line-height: 1.12;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-kvr .vsp-fit-item__content p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-kvr .vsp-section-head--wide {
  max-width: none;
  text-align: left;
  margin-bottom: 0;
}

.v-service-kvr .vsp-section-head--wide h2 {
  margin: 0;
  max-width: none;
  text-align: left;
  white-space: nowrap;
  font-size: clamp(34px,3.1vw,50px);
  line-height: 1.03;
  letter-spacing: -.03em;
  color: #1f2a44;
}

.v-service-kvr .vsp-benefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px 34px;
  margin-top: 24px;
}

.v-service-kvr .vsp-benefit {
  position: relative;
  padding: 0 0 18px;
  border-bottom: 1px solid rgba(22,29,42,.08);
}

.v-service-kvr .vsp-benefit h3 {
  position: relative;
  margin: 0 0 10px;
  padding-left: 28px;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-kvr .vsp-benefit h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f5f6f0;
  border: 2px solid #93ad62;
  box-shadow: 0 0 0 5px rgba(147,173,98,.08);
  transform: translateY(-50%);
}

.v-service-kvr .vsp-benefit p {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-kvr .vsp-split {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(280px,.72fr);
  gap: 34px;
  align-items: start;
}

.v-service-kvr .vsp-split__main {
  min-width: 0;
}

.v-service-kvr .vsp-split__side {
  min-width: 0;
  padding-top: 42px;
}

.v-service-kvr .vsp-section-head--brand {
  max-width: 920px;
  margin-bottom: 26px;
}

.v-service-kvr .vsp-brand-title {
  margin: 0 0 18px;
  font-size: clamp(44px,4.5vw,64px);
  line-height: 1.02;
  letter-spacing: -.03em;
  font-weight: 800;
  color: #2a3138;
}

.v-service-kvr .vsp-brand-title .vsp-brand__e {
  color: #7D9646;
}

.v-service-kvr .vsp-brand-lead {
  margin: 0;
  max-width: 760px;
  font-size: clamp(18px,1.2vw,20px);
  line-height: 1.7;
  color: #4c5a6a;
}

.v-service-kvr .vsp-section--soft .vsp-grid.vsp-grid--2 {
  gap: 22px;
}

.v-service-kvr .vsp-section--soft .vsp-card {
  min-height: 100%;
  padding: 22px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 24px rgba(15,23,42,.045);
}

.v-service-kvr .vsp-section--soft .vsp-card h3 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-kvr .vsp-section--soft .vsp-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(31,42,68,.88);
}

.v-service-kvr .vsp-note {
  padding: 22px 20px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: #f8f8f4;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.v-service-kvr .vsp-note h3,
.v-service-kvr .vsp-note p,
.v-service-kvr .vsp-note ul,
.v-service-kvr .vsp-note li,
.v-service-kvr .vsp-note span,
.v-service-kvr .vsp-note .vsp-checks,
.v-service-kvr .vsp-note .vsp-checks li {
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.v-service-kvr .vsp-note .vsp-checks li::marker {
  color: #93ad62 !important;
}

.v-service-kvr .vsp-calc {
  margin-top: 0;
}

.v-service-kvr .vsp-section--accent .vsp-shell {
  max-width: 1180px;
}

.v-service-kvr .vsp-calc__box {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  min-height: 420px;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(20,30,50,.12);
  overflow: hidden;
}

.v-service-kvr .vsp-calc-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 420px;
  padding: 64px 48px;
}

.v-service-kvr .vsp-calc-placeholder h3 {
  margin: 0 0 14px;
  font-size: clamp(30px,2.2vw,38px);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-kvr .vsp-calc-placeholder p {
  max-width: 620px;
  margin: 0 auto 16px;
  font-size: 16px;
  line-height: 1.75;
  color: rgba(31,42,68,.88);
}

.v-service-kvr .vsp-calc-placeholder .vsp-hero__actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 24px;
}

.v-service-kvr .v-steps__header {
  margin-bottom: 30px;
}

.v-service-kvr .v-steps__title {
  max-width: 820px;
}

.v-service-kvr .v-steps__lead {
  max-width: 720px;
}

.v-service-waterguard {
  background: #f5f6f2;
}

.v-service-waterguard .vsp-section {
  position: relative;
}

.v-service-waterguard .vsp-section--mineral {
  background: #f3f5ef;
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-waterguard .vsp-section--warm {
  background: linear-gradient(180deg, #fbfcf9 0%, #f6f8f3 100%);
  padding-top: 88px;
  padding-bottom: 72px;
}

.v-service-waterguard .vsp-section--soft {
  background: #eef2eb;
  padding-top: 76px;
  padding-bottom: 76px;
}

.v-service-waterguard .vsp-section--accent {
  background: #e9eee6;
  padding-top: 84px;
  padding-bottom: 84px;
}

.v-service-waterguard .v-steps--process {
  background: #eef2eb;
  padding-top: 76px;
  padding-bottom: 76px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-waterguard .vsp-section--faq {
  background: #f7f8f4;
  padding-top: 72px;
  padding-bottom: 72px;
  border-top: 1px solid rgba(31,42,68,.05);
}

.v-service-waterguard .vsp-section--cta {
  background: radial-gradient(circle at left top, rgba(79,111,47,.18), transparent 35%),
    linear-gradient(135deg, #0f1a2c 0%, #0d2347 55%, #17315d 100%);
  padding-top: 72px;
  padding-bottom: 72px;
}

.v-service-waterguard .vsp-shell,
.v-service-waterguard .v-wrap {
  max-width: 1180px;
}

.v-service-waterguard .vsp-section-head,
.v-service-waterguard .vsp-section-head--left,
.v-service-waterguard .vsp-section-head--center,
.v-service-waterguard .v-steps__header {
  text-align: left !important;
  margin-bottom: 24px;
  margin-left: 0;
  margin-right: auto;
}

.v-service-waterguard .vsp-section-head {
  max-width: 760px;
}

.v-service-waterguard .vsp-section-head h2,
.v-service-waterguard .vsp-section-head p,
.v-service-waterguard .v-steps__title,
.v-service-waterguard .v-steps__lead {
  text-align: left !important;
}

.v-service-waterguard .vsp-section-head--wide {
  max-width: none;
  margin-bottom: 0;
}

.v-service-waterguard .vsp-section-head--wide h2 {
  margin: 0;
  max-width: 860px;
  white-space: normal;
  font-size: clamp(34px,3.1vw,50px);
  line-height: 1.03;
  letter-spacing: -.03em;
  color: #1f2a44;
}

.v-service-waterguard .vsp-fit-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
}

.v-service-waterguard .vsp-fit-card {
  position: relative;
  min-width: 0;
  padding: 26px 24px 24px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.74) 100%);
  box-shadow: 0 12px 28px rgba(15,23,42,.05),
    inset 0 1px 0 rgba(255,255,255,.92);
  backdrop-filter: blur(2px);
}

.v-service-waterguard .vsp-fit-card::after {
  content: none !important;
  display: none !important;
}

.v-service-waterguard .vsp-fit-card__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-waterguard .vsp-fit-card__icon::before {
  content: "";
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
  display: block;
}

.v-service-waterguard .vsp-fit-card h3 {
  margin: 0 0 10px;
  font-size: clamp(22px,1.65vw,27px);
  line-height: 1.14;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-waterguard .vsp-fit-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.72;
  color: rgba(31,42,68,.88);
}

.v-service-waterguard .vsp-benefits {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px;
  margin-top: 26px;
}

.v-service-waterguard .vsp-benefit {
  position: relative;
  padding: 22px 22px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(15,23,42,.045);
}

.v-service-waterguard .vsp-benefit h3 {
  position: relative;
  margin: 0 0 10px;
  padding-left: 34px;
  font-size: 21px;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-waterguard .vsp-benefit h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(180deg,#f7faf3 0%, #edf4e4 100%);
  border: 2px solid #93ad62;
  box-shadow: 0 0 0 6px rgba(147,173,98,.08);
  transform: translateY(-50%);
}

.v-service-waterguard .vsp-benefit p {
  margin: 0;
  font-size: 15px;
  line-height: 1.72;
  color: rgba(31,42,68,.88);
}

.v-service-waterguard .vsp-split {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(280px,.72fr);
  gap: 34px;
  align-items: start;
}

.v-service-waterguard .vsp-split__main {
  min-width: 0;
}

.v-service-waterguard .vsp-split__side {
  min-width: 0;
  padding-top: 20px;
}

.v-service-waterguard .vsp-section-head--brand {
  max-width: 920px;
  margin-bottom: 24px;
}

.v-service-waterguard .vsp-brand-title {
  margin: 0 0 16px;
  font-size: clamp(40px,4.2vw,60px);
  line-height: 1.02;
  letter-spacing: -.03em;
  font-weight: 800;
  color: #2a3138;
}

.v-service-waterguard .vsp-brand-title .vsp-brand__e {
  color: #7D9646;
}

.v-service-waterguard .vsp-brand-lead {
  margin: 0;
  max-width: 760px;
  font-size: clamp(17px,1.15vw,19px);
  line-height: 1.72;
  color: #4c5a6a;
}

.v-service-waterguard .vsp-video-box,
.v-service-waterguard .vsp-video-box--wpembed {
  display: none !important;
}

.v-service-waterguard .vsp-split__main > .wp-block-embed.is-provider-youtube,
.v-service-waterguard .vsp-split__main > .wp-block-embed.is-type-video,
.v-service-waterguard .vsp-split__main > figure.wp-block-embed {
  margin: 0;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(58,58,58,.10);
  box-shadow: 0 22px 55px rgba(16,24,40,.16),
    0 8px 24px rgba(16,24,40,.08);
  background: #dde4dd;
  line-height: 0;
  aspect-ratio: 16 / 9;
}

.v-service-waterguard .vsp-split__main > .wp-block-embed .wp-block-embed__wrapper,
.v-service-waterguard .vsp-split__main > figure.wp-block-embed .wp-block-embed__wrapper {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  width: 100%;
  height: 100%;
}

.v-service-waterguard .vsp-split__main > .wp-block-embed iframe,
.v-service-waterguard .vsp-split__main > figure.wp-block-embed iframe {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-width: none;
  border: 0;
}

.v-service-waterguard .vsp-video-caption {
  margin: 14px 0 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(31,42,68,.82);
}

.v-service-waterguard .vsp-note {
  padding: 22px 20px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: #f8f8f4;
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.v-service-waterguard .vsp-note h3,
.v-service-waterguard .vsp-note p,
.v-service-waterguard .vsp-note ul,
.v-service-waterguard .vsp-note li,
.v-service-waterguard .vsp-note span,
.v-service-waterguard .vsp-note .vsp-checks,
.v-service-waterguard .vsp-note .vsp-checks li {
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.v-service-waterguard .vsp-note .vsp-checks li::marker {
  color: #93ad62 !important;
}

.v-service-waterguard .vsp-section--accent .vsp-section-head {
  max-width: 760px;
}

.v-service-waterguard .vsp-grid.vsp-grid--3 {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
  margin-top: 30px;
  align-items: stretch;
}

.v-service-waterguard .vsp-section--accent .vsp-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 24px 22px 22px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.82) 100%);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
}

.v-service-waterguard .vsp-section--accent .vsp-card,
.v-service-waterguard .vsp-section--accent .vsp-card * {
  color: #1f2a44 !important;
  -webkit-text-fill-color: #1f2a44 !important;
  opacity: 1 !important;
}

.v-service-waterguard .vsp-section--accent .vsp-card h3 {
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.18;
  letter-spacing: -.02em;
}

.v-service-waterguard .vsp-section--accent .vsp-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.72;
}

.v-service-waterguard .vsp-section--accent .vsp-checks {
  margin: 16px 0 0;
}

.v-service-waterguard .vsp-section--accent .vsp-checks li::marker {
  color: #93ad62 !important;
}

.v-service-waterguard .vsp-card__actions {
  margin-top: auto;
  padding-top: 18px;
}

.v-service-waterguard .vsp-price {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin: 10px 0 14px;
  line-height: 1;
}

.v-service-waterguard .vsp-price strong {
  font-size: 40px;
  letter-spacing: -.04em;
  color: #1f2a44 !important;
}

.v-service-waterguard .vsp-price span {
  font-size: 15px;
  color: #5b6675 !important;
  padding-bottom: 6px;
}

.v-service-waterguard .vsp-section--accent .vsp-card__actions .vsp-btn,
.v-service-waterguard .vsp-section--accent .vsp-card__actions .vsp-btn:link,
.v-service-waterguard .vsp-section--accent .vsp-card__actions .vsp-btn:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--vsp-blue, #1d4ed8);
  border: 1px solid var(--vsp-blue, #1d4ed8);
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
  box-shadow: none;
}

.v-service-waterguard .vsp-section--accent .vsp-card__actions .vsp-btn:hover,
.v-service-waterguard .vsp-section--accent .vsp-card__actions .vsp-btn:focus {
  background: var(--vsp-blue-dark, #1e40af);
  border-color: var(--vsp-blue-dark, #1e40af);
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
}

.v-service-waterguard .vsp-section--accent .vsp-grid.vsp-grid--3 > .vsp-card:nth-child(2) {
  position: relative;
  border-color: rgba(29,78,216,.22);
  box-shadow: 0 16px 34px rgba(15,23,42,.08),
    0 0 0 1px rgba(29,78,216,.08);
}

.v-service-waterguard .vsp-section--accent .vsp-grid.vsp-grid--3 > .vsp-card:nth-child(2)::before {
  content: "Suosittu valinta";
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(29,78,216,.10);
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .01em;
}

.v-service-waterguard .vsp-section--accent .vsp-split {
  margin-top: 34px;
}

.v-service-waterguard .vsp-section--accent .vsp-grid.vsp-grid--2 {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px;
}

.v-service-waterguard .vsp-section--accent .vsp-grid.vsp-grid--2 .vsp-card {
  min-height: 100%;
  padding: 22px 20px;
  border: 1px solid rgba(22,29,42,.08);
  border-radius: 20px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 10px 24px rgba(15,23,42,.045);
}

.v-service-waterguard .vsp-section--accent .vsp-grid.vsp-grid--2 .vsp-card h3 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.02em;
}

.v-service-waterguard .vsp-section--accent .vsp-grid.vsp-grid--2 .vsp-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.72;
}

.v-service-waterguard .v-steps__header {
  margin-bottom: 30px;
  text-align: left !important;
  max-width: 760px;
}

.v-service-waterguard .v-steps__title {
  max-width: 860px;
  text-align: left !important;
}

.v-service-waterguard .v-steps__lead {
  max-width: 720px;
  text-align: left !important;
}

.v-service-waterguard .vsp-section--faq .vsp-section-head {
  text-align: left !important;
  max-width: 760px;
}

.v-service-waterguard .vsp-section--faq .vsp-section-head h2,
.v-service-waterguard .vsp-section--faq .vsp-section-head p {
  text-align: left !important;
}

.v-service-waterguard .vsp-section--cta .vsp-cta {
  align-items: start;
}

.v-service-waterguard .vsp-section--cta .vsp-cta__content {
  color: #f5f7fb;
}

.v-service-waterguard .vsp-section--cta .vsp-cta__content h2 {
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0,0,0,.14);
}

.v-service-waterguard .vsp-section--cta .vsp-cta__content p {
  color: rgba(244,247,252,.92);
}

.v-service-waterguard .vsp-section--cta .vsp-eyebrow--light {
  color: #8EA85A;
}

.v-service-waterguard .vsp-section--cta .vsp-checks--light li {
  color: #f4f7fc;
}

.v-service-waterguard .vsp-section--cta .vsp-cta__phone span {
  color: rgba(244,247,252,.82);
}

.v-service-waterguard .vsp-section--cta .vsp-cta__phone a {
  color: #ffffff;
}

.v-service-waterguard .vsp-section--cta .vsp-cta__form {
  border-radius: 20px;
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 18px 40px rgba(8,15,28,.18);
  padding: 18px;
}

@media (max-width: 1100px) {
  .vsp-hero__inner,
  .vsp-split,
  .vsp-calc,
  .vsp-cta {
    grid-template-columns: 1fr;
  }

  .vsp-hero__content {
    max-width: none;
  }

  .vsp-hero__aside {
    max-width: 620px;
  }

  .vsp-note {
    position: relative;
    top: auto;
  }

  .vsp-steps {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .v-service-ilp .vsp-hero__inner {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-top: 72px;
    padding-bottom: 24px;
  }

  .v-service-ilp .vsp-hero__content {
    max-width: 860px;
  }

  .v-service-ilp .vsp-hero__title {
    max-width: 860px;
    font-size: clamp(40px, 7vw, 64px);
  }

  .v-service-ilp .vsp-hero__lead {
    max-width: 760px;
  }

  .v-service-ilp .vsp-hero__aside {
    justify-content: flex-start;
    margin-left: 0;
  }

  .v-service-ilp .vsp-info-card {
    width: min(100%, 760px);
    margin-left: 0;
  }

  .v-service-ilp .vsp-info-card h2 {
    font-size: clamp(26px, 3vw, 34px);
  }

  .v-service-mlp .vsp-hero__inner {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-top: 72px;
    padding-bottom: 24px;
  }

  .v-service-mlp .vsp-hero__content {
    max-width: 860px;
  }

  .v-service-mlp .vsp-hero__title {
    max-width: 860px;
    font-size: clamp(40px, 7vw, 64px);
  }

  .v-service-mlp .vsp-hero__lead {
    max-width: 760px;
  }

  .v-service-mlp .vsp-hero__aside {
    justify-content: flex-start;
    margin-left: 0;
  }

  .v-service-mlp .vsp-info-card {
    width: min(100%, 760px);
    margin-left: 0;
  }

  .v-service-mlp .vsp-info-card h2 {
    font-size: clamp(26px, 3vw, 34px);
  }

  .v-service-lvr .vsp-hero__inner {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-top: 72px;
    padding-bottom: 24px;
  }

  .v-service-lvr .vsp-hero__content {
    max-width: 860px;
  }

  .v-service-lvr .vsp-hero__title {
    max-width: 860px;
    font-size: clamp(40px, 7vw, 64px);
  }

  .v-service-lvr .vsp-hero__lead {
    max-width: 760px;
  }

  .v-service-lvr .vsp-hero__aside {
    justify-content: flex-start;
    margin-left: 0;
  }

  .v-service-lvr .vsp-info-card {
    width: min(100%, 760px);
    margin-left: 0;
  }

  .v-service-lvr .vsp-info-card h2 {
    font-size: clamp(26px, 3vw, 34px);
  }

  .v-service-kvr .vsp-hero__inner {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-top: 72px;
    padding-bottom: 24px;
  }

  .v-service-kvr .vsp-hero__content {
    max-width: 860px;
  }

  .v-service-kvr .vsp-hero__title {
    max-width: 860px;
    font-size: clamp(40px, 7vw, 64px);
  }

  .v-service-kvr .vsp-hero__lead {
    max-width: 760px;
  }

  .v-service-kvr .vsp-hero__aside {
    justify-content: flex-start;
    margin-left: 0;
  }

  .v-service-kvr .vsp-info-card {
    width: min(100%, 760px);
    margin-left: 0;
  }

  .v-service-kvr .vsp-info-card h2 {
    font-size: clamp(26px, 3vw, 34px);
  }

  .v-service-waterguard .vsp-hero__inner {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-top: 72px;
    padding-bottom: 24px;
  }

  .v-service-waterguard .vsp-hero__content {
    max-width: 860px;
  }

  .v-service-waterguard .vsp-hero__title {
    max-width: 860px;
    font-size: clamp(40px, 7vw, 64px);
  }

  .v-service-waterguard .vsp-hero__lead {
    max-width: 760px;
  }

  .v-service-waterguard .vsp-info-card {
    width: min(100%, 760px);
    margin-left: 0;
  }

  .v-service-waterguard .vsp-stats {
    grid-template-columns: 1fr;
  }

  .v-service-waterguard .vsp-stat {
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }

  .v-service-waterguard .vsp-stat:last-child {
    border-bottom: 0;
  }

  .v-service-ivlp .vsp-fit-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .v-service-ivlp .vsp-fit-card {
    padding: 22px 20px 20px;
  }

  .v-service-ivlp .vsp-fit-card h3 {
    font-size: 24px;
  }

  .v-service-ilp .vsp-fit-grid,
  .v-service-ilp .vsp-fit-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .v-service-ilp .vsp-fit-card,
  .v-service-ilp .vsp-fit-item {
    padding: 22px 20px 20px;
  }

  .v-service-ilp .vsp-fit-card h3,
  .v-service-ilp .vsp-fit-item__content h3 {
    font-size: 24px;
  }

  .v-service-mlp .vsp-fit-grid,
  .v-service-mlp .vsp-fit-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .v-service-mlp .vsp-fit-card,
  .v-service-mlp .vsp-fit-item {
    padding: 22px 20px 20px;
  }

  .v-service-mlp .vsp-fit-card h3,
  .v-service-mlp .vsp-fit-item__content h3 {
    font-size: 24px;
  }

  .v-service-lvr .vsp-fit-grid,
  .v-service-lvr .vsp-fit-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .v-service-lvr .vsp-fit-card,
  .v-service-lvr .vsp-fit-item {
    padding: 22px 20px 20px;
  }

  .v-service-lvr .vsp-fit-card h3,
  .v-service-lvr .vsp-fit-item__content h3 {
    font-size: 24px;
  }

  .v-service-kvr .vsp-fit-grid,
  .v-service-kvr .vsp-fit-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .v-service-kvr .vsp-fit-card,
  .v-service-kvr .vsp-fit-item {
    padding: 22px 20px 20px;
  }

  .v-service-kvr .vsp-fit-card h3,
  .v-service-kvr .vsp-fit-item__content h3 {
    font-size: 24px;
  }

  .v-service-waterguard .vsp-fit-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .v-service-waterguard .vsp-fit-card {
    padding: 22px 20px 20px;
  }

  .v-service-waterguard .vsp-fit-card h3 {
    font-size: 24px;
  }

}

@media (max-width: 1024px) {
  .v-services__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .v-benefits {
    grid-template-columns: repeat(2, 1fr);
  }

  .v-steps--process .v-steps__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }

  .v-steps--process .v-steps__grid::before {
    display: none;
  }

  .v-numbers__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .v-cta__inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .v-contact__grid {
    grid-template-columns: 1fr;
  }

  .v-quotes__grid {
    grid-template-columns: 1fr 1fr;
  }

  .service-columns .wp-block-columns {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .service-hero .hero-grid {
    grid-template-columns: 1fr;
  }

  .v-trust__header {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 48px;
  }

  .v-services__header {
    grid-template-columns: 1fr;
  }

  .v-services__header::after {
    display: none;
  }

  .v-steps--process .v-steps__header {
    grid-template-columns: 1fr;
  }

  .v-steps--process .v-steps__header::after {
    display: none;
  }

  .v-trust__grid {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  .v-cta {
    margin: 0 14px 18px;
    border-radius: 30px;
  }

  .v-hero__inner {
    width: min(100%, calc(100% - 36px));
    padding-top: 52px;
    padding-bottom: 28px;
  }

  .v-hero__title {
    max-width: 10ch;
    font-size: clamp(34px, 6.2vw, 56px);
  }

  .v-hero__lead {
    max-width: 560px;
    font-size: 16px;
    line-height: 1.65;
  }

  .v-hero__stats,
  .v-hero .v-stats {
    width: auto;
    max-width: 100%;
  }

  .v-hero__stat,
  .v-hero .v-stat {
    min-width: 136px;
    padding: 14px 18px 12px;
  }

  .ast-primary-header-bar .site-primary-header-wrap,
  .ast-primary-header-bar .ast-builder-grid-row {
    min-height: 76px;
  }

  .site-branding img,
  .custom-logo-link img {
    max-height: 38px;
  }

  .main-header-menu > .menu-item > a,
  .ast-builder-menu-1 .menu > .menu-item > a {
    padding: 0 11px;
    font-size: 14px;
  }

  .v-footer__inner {
    width: min(100%, calc(100% - 36px));
    padding: 46px 0 18px;
  }

  .v-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 34px 28px;
  }

  .v-footer__brand {
    grid-column: 1 / -1;
  }

  .ast-primary-header-bar .ast-builder-grid-row {
    min-height: 76px;
  }

  .custom-logo-link img,
  .site-branding img {
    max-height: 36px;
  }

  .v-service-ivlp .vsp-hero__inner {
    grid-template-columns: 1fr;
    gap: 26px;
    padding-top: 72px;
    padding-bottom: 24px;
  }

  .v-service-ivlp .vsp-hero__content {
    max-width: 860px;
    padding-right: 0;
  }

  .v-service-ivlp .vsp-hero__title {
    max-width: 860px;
    font-size: clamp(40px, 7vw, 64px);
  }

  .v-service-ivlp .vsp-hero__lead {
    max-width: 760px;
  }

  .v-service-ivlp .vsp-hero__aside {
    justify-content: flex-start;
    margin-left: 0;
    padding-top: 0;
  }

  .v-service-ivlp .vsp-info-card {
    width: min(100%, 760px);
    margin-left: 0;
  }

  .vsp-benefits {
    grid-template-columns: 1fr;
  }

  .vsp-timeline {
    grid-template-columns: 1fr 1fr;
  }

  .v-service-ilp .vsp-split {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .v-service-ilp .vsp-split__side {
    padding-top: 0;
  }

  .v-service-mlp .vsp-split {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .v-service-mlp .vsp-split__side {
    padding-top: 0;
  }

  .v-service-lvr .vsp-split {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .v-service-lvr .vsp-split__side {
    padding-top: 0;
  }

  .v-service-kvr .vsp-split {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .v-service-kvr .vsp-split__side {
    padding-top: 0;
  }

  .v-service-waterguard .vsp-split {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .v-service-waterguard .vsp-split__side {
    padding-top: 0;
  }

}

@media (max-width: 900px) {
  .vsp-savings__numbers,
  .vsp-cooling__grid {
    grid-template-columns: 1fr;
  }

  .vsp-cooling {
    padding: 42px 22px;
  }

  .v-service-ivlp .vsp-benefits {
    grid-template-columns: 1fr;
  }

  .v-service-ivlp .vsp-section-head--wide h2 {
    white-space: normal;
    font-size: 34px;
    line-height: 1.06;
  }

  .v-service-ilp .vsp-benefits {
    grid-template-columns: 1fr;
  }

  .v-service-ilp .vsp-section-head--wide h2 {
    white-space: normal;
    font-size: 34px;
    line-height: 1.06;
  }

  .v-service-mlp .vsp-benefits {
    grid-template-columns: 1fr;
  }

  .v-service-mlp .vsp-section-head--wide h2 {
    white-space: normal;
    font-size: 34px;
    line-height: 1.06;
  }

  .v-service-lvr .vsp-benefits {
    grid-template-columns: 1fr;
  }

  .v-service-lvr .vsp-section-head--wide h2 {
    white-space: normal;
    font-size: 34px;
    line-height: 1.06;
  }

  .v-service-kvr .vsp-benefits {
    grid-template-columns: 1fr;
  }

  .v-service-kvr .vsp-section-head--wide h2 {
    white-space: normal;
    font-size: 34px;
    line-height: 1.06;
  }

  .v-service-waterguard .vsp-benefits,
  .v-service-waterguard .vsp-grid.vsp-grid--3,
  .v-service-waterguard .vsp-section--accent .vsp-grid.vsp-grid--2 {
    grid-template-columns: 1fr;
  }

  .v-service-waterguard .vsp-section-head--wide h2 {
    font-size: 34px;
    line-height: 1.06;
  }

}

.v-contact-map {
  background: #ffffff;
  padding: 80px 0;
}

.v-contact-map__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.v-contact-map__content h2 {
  margin-bottom: 16px;
}

.v-contact-map__content p {
  max-width: 520px;
}

.v-contact-map__areas {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 28px;
}

.v-contact-map__areas span {
  background: #f5f6f2;
  padding: 8px 14px;
  border-radius: 30px;
  font-size: 14px;
  font-weight: 500;
}

.v-contact-map__actions {
  margin-top: 10px;
}

.v-map-embed {
  position: relative;
  width: 100%;
  height: 420px;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}

.v-map-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width:900px) {
  .v-footer-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .v-contact-map__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .v-map-embed {
    height: 360px;
  }

}

.v-contact-map__note {
  margin-top: 14px;
  font-size: 14px;
  opacity: 0.8;
}

.v-hero .v-hero__ctas,
.vsp-hero .vsp-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

.v-hero .v-btn,
.vsp-hero .v-btn,
.vsp-hero .vsp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px !important;
  padding: 0 22px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: .96rem !important;
  line-height: 1 !important;
  text-decoration: none;
  box-shadow: none;
  transition: transform .18s ease,
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease,
    box-shadow .18s ease;
}

.v-hero .v-btn:hover,
.vsp-hero .v-btn:hover,
.vsp-hero .vsp-btn:hover {
  transform: translateY(-1px);
}

.v-hero .v-btn--primary,
.vsp-hero .v-btn--primary,
.vsp-hero .vsp-btn--primary {
  background: #2563eb !important;
  color: #fff !important;
  border: 1px solid transparent !important;
  box-shadow: 0 12px 26px rgba(37,99,235,.24),
    inset 0 1px 0 rgba(255,255,255,.10) !important;
}

.v-hero .v-btn--primary:hover,
.vsp-hero .v-btn--primary:hover,
.vsp-hero .vsp-btn--primary:hover {
  background: #1d4ed8 !important;
  color: #fff !important;
}

.v-hero .v-btn--ghost,
.vsp-hero .v-btn--ghost,
.vsp-hero .vsp-btn--ghost {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.v-hero .v-btn--ghost:hover,
.vsp-hero .v-btn--ghost:hover,
.vsp-hero .vsp-btn--ghost:hover {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.24) !important;
  color: #fff !important;
}

@media (max-width: 767px) {
  .v-hero {
    border-radius: 0 0 22px 22px;
  }

  .v-hero__inner {
    width: calc(100% - 28px);
    padding-top: 34px;
    padding-bottom: 18px;
  }

  .v-hero__label {
    gap: 8px 10px;
    margin-bottom: 14px;
  }

  .v-hero__brand {
    font-size: 11px;
    letter-spacing: .14em;
  }

  .v-hero__tagline {
    font-size: 12px;
  }

  .v-hero__title {
    max-width: none;
    margin-bottom: 14px;
    font-size: clamp(30px, 10vw, 44px);
    line-height: .98;
  }

  .v-hero__lead {
    margin-bottom: 22px;
    font-size: 15px;
    line-height: 1.62;
  }

  .v-hero__actions,
  .v-hero__cta,
  .v-hero .v-btns {
    gap: 10px;
  }

  .v-hero .v-btn,
  .v-hero a[class*="btn"],
  .v-hero .wp-block-button__link {
    width: 100%;
  }

  .v-hero__stats,
  .v-hero .v-stats {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 8px 0;
    margin-top: 22px;
    border-radius: 20px;
  }

  .v-hero__stat,
  .v-hero .v-stat {
    min-width: 0;
    width: 100%;
    padding: 14px 16px;
  }

  .v-hero__stat:not(:last-child)::after,
  .v-hero .v-stat:not(:last-child)::after {
    top: auto;
    right: 16px;
    bottom: 0;
    width: calc(100% - 32px);
    height: 1px;
  }

  .ast-primary-header-bar .site-primary-header-wrap,
  .ast-primary-header-bar .ast-builder-grid-row {
    min-height: 70px;
  }

  .site-branding img,
  .custom-logo-link img {
    max-height: 34px;
  }

  .v-footer {
    margin-top: 40px;
    border-radius: 22px 22px 0 0;
  }

  .v-footer__inner {
    width: calc(100% - 28px);
    padding: 36px 0 16px;
  }

  .v-footer__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .v-footer__logo {
    font-size: 30px;
  }

  .v-footer__tagline {
    margin-bottom: 14px;
  }

  .v-footer__text {
    font-size: 14px;
    line-height: 1.72;
  }

  .v-footer__bottom {
    margin-top: 24px;
    padding-top: 16px;
  }

  .v-service-ivlp .vsp-hero__inner {
    gap: 20px;
    padding-top: 42px;
    padding-bottom: 18px;
  }

  .v-service-ivlp .vsp-kicker {
    margin-bottom: 16px;
    gap: 8px;
  }

  .v-service-ivlp .vsp-brand,
  .v-service-ivlp .vsp-kicker__text {
    font-size: 12px;
  }

  .v-service-ivlp .vsp-hero__title {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(34px, 10.6vw, 50px);
    line-height: .96;
  }

  .v-service-ivlp .vsp-hero__lead {
    max-width: none;
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.58;
  }

  .v-service-ivlp .vsp-hero__actions {
    gap: 10px;
  }

  .v-service-ivlp .vsp-info-card {
    width: 100%;
    padding: 22px 18px;
    border-radius: 20px;
  }

  .v-service-ivlp .vsp-info-card h2 {
    font-size: 24px;
  }

  .v-service-ivlp .vsp-info-card p,
  .v-service-ivlp .vsp-checks li {
    font-size: 15px;
  }

  .v-service-ilp .vsp-hero__inner {
    gap: 20px;
    padding-top: 42px;
    padding-bottom: 18px;
  }

  .v-service-ilp .vsp-kicker {
    margin-bottom: 16px;
    gap: 8px;
  }

  .v-service-ilp .vsp-brand,
  .v-service-ilp .vsp-kicker__text {
    font-size: 12px;
  }

  .v-service-ilp .vsp-hero__title {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(34px, 10.6vw, 50px);
    line-height: .96;
    text-wrap: pretty;
  }

  .v-service-ilp .vsp-hero__lead {
    max-width: none;
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.58;
  }

  .v-service-ilp .vsp-hero__actions {
    gap: 10px;
  }

  .v-service-ilp .vsp-info-card {
    width: 100%;
    padding: 22px 18px;
    border-radius: 20px;
  }

  .v-service-ilp .vsp-info-card h2 {
    font-size: 24px;
    line-height: 1.12;
    text-wrap: pretty;
  }

  .v-service-ilp .vsp-info-card p,
  .v-service-ilp .vsp-checks li {
    font-size: 15px;
  }

  .v-service-mlp .vsp-hero__inner {
    gap: 20px;
    padding-top: 42px;
    padding-bottom: 18px;
  }

  .v-service-mlp .vsp-kicker {
    margin-bottom: 16px;
    gap: 8px;
  }

  .v-service-mlp .vsp-brand,
  .v-service-mlp .vsp-kicker__text {
    font-size: 12px;
  }

  .v-service-mlp .vsp-hero__title {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(34px, 10.6vw, 50px);
    line-height: .96;
    text-wrap: pretty;
  }

  .v-service-mlp .vsp-hero__lead {
    max-width: none;
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.58;
  }

  .v-service-mlp .vsp-hero__actions {
    gap: 10px;
  }

  .v-service-mlp .vsp-info-card {
    width: 100%;
    padding: 22px 18px;
    border-radius: 20px;
  }

  .v-service-mlp .vsp-info-card h2 {
    font-size: 24px;
    line-height: 1.12;
    text-wrap: pretty;
  }

  .v-service-mlp .vsp-info-card p,
  .v-service-mlp .vsp-checks li {
    font-size: 15px;
  }

  .v-service-lvr .vsp-hero__inner {
    gap: 20px;
    padding-top: 42px;
    padding-bottom: 18px;
  }

  .v-service-lvr .vsp-kicker {
    margin-bottom: 16px;
    gap: 8px;
  }

  .v-service-lvr .vsp-brand,
  .v-service-lvr .vsp-kicker__text {
    font-size: 12px;
  }

  .v-service-lvr .vsp-hero__title {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(34px, 10.6vw, 50px);
    line-height: .96;
    text-wrap: pretty;
  }

  .v-service-lvr .vsp-hero__lead {
    max-width: none;
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.58;
  }

  .v-service-lvr .vsp-hero__actions {
    gap: 10px;
  }

  .v-service-lvr .vsp-info-card {
    width: 100%;
    padding: 22px 18px;
    border-radius: 20px;
  }

  .v-service-lvr .vsp-info-card h2 {
    font-size: 24px;
    line-height: 1.12;
    text-wrap: pretty;
  }

  .v-service-lvr .vsp-info-card p,
  .v-service-lvr .vsp-checks li {
    font-size: 15px;
  }

  .v-service-kvr .vsp-hero__inner {
    gap: 20px;
    padding-top: 42px;
    padding-bottom: 18px;
  }

  .v-service-kvr .vsp-kicker {
    margin-bottom: 16px;
    gap: 8px;
  }

  .v-service-kvr .vsp-brand,
  .v-service-kvr .vsp-kicker__text {
    font-size: 12px;
  }

  .v-service-kvr .vsp-hero__title {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(34px, 10.6vw, 50px);
    line-height: .96;
    text-wrap: pretty;
  }

  .v-service-kvr .vsp-hero__lead {
    max-width: none;
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.58;
  }

  .v-service-kvr .vsp-hero__actions {
    gap: 10px;
  }

  .v-service-kvr .vsp-info-card {
    width: 100%;
    padding: 22px 18px;
    border-radius: 20px;
  }

  .v-service-kvr .vsp-info-card h2 {
    font-size: 24px;
    line-height: 1.12;
    text-wrap: pretty;
  }

  .v-service-kvr .vsp-info-card p,
  .v-service-kvr .vsp-checks li {
    font-size: 15px;
  }

  .v-service-waterguard .vsp-hero__inner {
    gap: 20px;
    padding-top: 42px;
    padding-bottom: 18px;
  }

  .v-service-waterguard .vsp-kicker {
    margin-bottom: 16px;
    gap: 8px;
  }

  .v-service-waterguard .vsp-brand,
  .v-service-waterguard .vsp-kicker__text {
    font-size: 12px;
  }

  .v-service-waterguard .vsp-hero__title {
    max-width: none;
    margin-bottom: 16px;
    font-size: clamp(34px, 10.6vw, 50px);
    line-height: .96;
    text-wrap: pretty;
  }

  .v-service-waterguard .vsp-hero__lead {
    max-width: none;
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.58;
  }

  .v-service-waterguard .vsp-hero__actions {
    gap: 10px;
  }

  .v-service-waterguard .vsp-info-card {
    width: 100%;
    padding: 22px 18px;
    border-radius: 20px;
  }

  .v-service-waterguard .vsp-info-card h2 {
    font-size: 24px;
    line-height: 1.12;
    text-wrap: pretty;
  }

  .v-service-waterguard .vsp-info-card p,
  .v-service-waterguard .vsp-checks li {
    font-size: 15px;
  }

  .v-service-waterguard .vsp-stat {
    padding: 18px 18px 16px;
  }

  .v-service-waterguard .vsp-stat strong {
    font-size: 14px;
  }

  .v-service-waterguard .vsp-stat span {
    font-size: 14px;
  }

  .vsp-fit-item {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .vsp-timeline {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .vsp-timeline__top {
    margin-bottom: 10px;
  }

  .vsp-timeline__line {
    display: none;
  }

  .v-service-ivlp .vsp-fit-grid {
    margin-top: 24px;
  }

  .v-service-ivlp .vsp-fit-card {
    border-radius: 18px;
    padding: 20px 18px 18px;
  }

  .v-service-ivlp .vsp-fit-card__icon {
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
  }

  .v-service-ivlp .vsp-fit-card h3 {
    font-size: 22px;
  }

  .v-service-ivlp .vsp-fit-card p {
    font-size: 15px;
    line-height: 1.65;
  }

  .v-service-ilp .vsp-section--mineral,
  .v-service-ilp .vsp-section--warm,
  .v-service-ilp .vsp-section--soft,
  .v-service-ilp .vsp-section--accent,
  .v-service-ilp .v-steps--process,
  .v-service-ilp .vsp-section--faq,
  .v-service-ilp .vsp-section--cta {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .v-service-ilp .vsp-fit-grid {
    margin-top: 24px;
  }

  .v-service-ilp .vsp-fit-card,
  .v-service-ilp .vsp-fit-item {
    border-radius: 18px;
    padding: 20px 18px 18px;
  }

  .v-service-ilp .vsp-fit-card__icon,
  .v-service-ilp .vsp-fit-item .vsp-fit-icon,
  .v-service-ilp .vsp-fit-item .vsp-check {
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
  }

  .v-service-ilp .vsp-fit-card h3,
  .v-service-ilp .vsp-fit-item__content h3 {
    font-size: 22px;
  }

  .v-service-ilp .vsp-fit-card p,
  .v-service-ilp .vsp-fit-item__content p {
    font-size: 15px;
    line-height: 1.65;
  }

  .v-service-ilp .vsp-brand-title {
    font-size: 40px;
  }

  .v-service-ilp .vsp-section--soft .vsp-card,
  .v-service-ilp .vsp-note {
    padding: 18px 16px;
    border-radius: 16px;
  }

  .v-service-ilp .vsp-calc__box {
    max-width: none;
    min-height: 320px;
    border-radius: 18px;
  }

  .v-service-ilp .vsp-calc-placeholder {
    min-height: 320px;
    padding: 40px 20px;
  }

  .v-service-ilp .vsp-calc-placeholder h3 {
    font-size: 26px;
  }

  .v-service-ilp .vsp-calc-placeholder .vsp-hero__actions {
    flex-direction: column;
    align-items: center;
  }

  .v-service-ilp .v-steps__header {
    margin-bottom: 22px;
  }

  .v-service-mlp .vsp-section--mineral,
  .v-service-mlp .vsp-section--warm,
  .v-service-mlp .vsp-section--soft,
  .v-service-mlp .vsp-section--accent,
  .v-service-mlp .v-steps--process,
  .v-service-mlp .vsp-section--faq,
  .v-service-mlp .vsp-section--cta {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .v-service-mlp .vsp-fit-grid {
    margin-top: 24px;
  }

  .v-service-mlp .vsp-fit-card,
  .v-service-mlp .vsp-fit-item {
    border-radius: 18px;
    padding: 20px 18px 18px;
  }

  .v-service-mlp .vsp-fit-card__icon,
  .v-service-mlp .vsp-fit-item .vsp-fit-icon,
  .v-service-mlp .vsp-fit-item .vsp-check {
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
  }

  .v-service-mlp .vsp-fit-card h3,
  .v-service-mlp .vsp-fit-item__content h3 {
    font-size: 22px;
  }

  .v-service-mlp .vsp-fit-card p,
  .v-service-mlp .vsp-fit-item__content p {
    font-size: 15px;
    line-height: 1.65;
  }

  .v-service-mlp .vsp-brand-title {
    font-size: 40px;
  }

  .v-service-mlp .vsp-section--soft .vsp-card,
  .v-service-mlp .vsp-note {
    padding: 18px 16px;
    border-radius: 16px;
  }

  .v-service-mlp .vsp-calc__box {
    max-width: none;
    min-height: 320px;
    border-radius: 18px;
  }

  .v-service-mlp .vsp-calc-placeholder {
    min-height: 320px;
    padding: 40px 20px;
  }

  .v-service-mlp .vsp-calc-placeholder h3 {
    font-size: 26px;
  }

  .v-service-mlp .vsp-calc-placeholder .vsp-hero__actions {
    flex-direction: column;
    align-items: center;
  }

  .v-service-mlp .v-steps__header {
    margin-bottom: 22px;
  }

  .v-service-lvr .vsp-section--mineral,
  .v-service-lvr .vsp-section--warm,
  .v-service-lvr .vsp-section--soft,
  .v-service-lvr .vsp-section--accent,
  .v-service-lvr .v-steps--process,
  .v-service-lvr .vsp-section--faq,
  .v-service-lvr .vsp-section--cta {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .v-service-lvr .vsp-fit-grid {
    margin-top: 24px;
  }

  .v-service-lvr .vsp-fit-card,
  .v-service-lvr .vsp-fit-item {
    border-radius: 18px;
    padding: 20px 18px 18px;
  }

  .v-service-lvr .vsp-fit-card__icon,
  .v-service-lvr .vsp-fit-item .vsp-fit-icon,
  .v-service-lvr .vsp-fit-item .vsp-check {
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
  }

  .v-service-lvr .vsp-fit-card h3,
  .v-service-lvr .vsp-fit-item__content h3 {
    font-size: 22px;
  }

  .v-service-lvr .vsp-fit-card p,
  .v-service-lvr .vsp-fit-item__content p {
    font-size: 15px;
    line-height: 1.65;
  }

  .v-service-lvr .vsp-brand-title {
    font-size: 40px;
  }

  .v-service-lvr .vsp-section--soft .vsp-card,
  .v-service-lvr .vsp-note {
    padding: 18px 16px;
    border-radius: 16px;
  }

  .v-service-lvr .vsp-calc__box {
    max-width: none;
    min-height: 320px;
    border-radius: 18px;
  }

  .v-service-lvr .vsp-calc-placeholder {
    min-height: 320px;
    padding: 40px 20px;
  }

  .v-service-lvr .vsp-calc-placeholder h3 {
    font-size: 26px;
  }

  .v-service-lvr .vsp-calc-placeholder .vsp-hero__actions {
    flex-direction: column;
    align-items: center;
  }

  .v-service-lvr .v-steps__header {
    margin-bottom: 22px;
  }

  .v-service-kvr .vsp-section--mineral,
  .v-service-kvr .vsp-section--warm,
  .v-service-kvr .vsp-section--soft,
  .v-service-kvr .vsp-section--accent,
  .v-service-kvr .v-steps--process,
  .v-service-kvr .vsp-section--faq,
  .v-service-kvr .vsp-section--cta {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .v-service-kvr .vsp-fit-grid {
    margin-top: 24px;
  }

  .v-service-kvr .vsp-fit-card,
  .v-service-kvr .vsp-fit-item {
    border-radius: 18px;
    padding: 20px 18px 18px;
  }

  .v-service-kvr .vsp-fit-card__icon,
  .v-service-kvr .vsp-fit-item .vsp-fit-icon,
  .v-service-kvr .vsp-fit-item .vsp-check {
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
  }

  .v-service-kvr .vsp-fit-card h3,
  .v-service-kvr .vsp-fit-item__content h3 {
    font-size: 22px;
  }

  .v-service-kvr .vsp-fit-card p,
  .v-service-kvr .vsp-fit-item__content p {
    font-size: 15px;
    line-height: 1.65;
  }

  .v-service-kvr .vsp-brand-title {
    font-size: 40px;
  }

  .v-service-kvr .vsp-section--soft .vsp-card,
  .v-service-kvr .vsp-note {
    padding: 18px 16px;
    border-radius: 16px;
  }

  .v-service-kvr .vsp-calc__box {
    max-width: none;
    min-height: 320px;
    border-radius: 18px;
  }

  .v-service-kvr .vsp-calc-placeholder {
    min-height: 320px;
    padding: 40px 20px;
  }

  .v-service-kvr .vsp-calc-placeholder h3 {
    font-size: 26px;
  }

  .v-service-kvr .vsp-calc-placeholder .vsp-hero__actions {
    flex-direction: column;
    align-items: center;
  }

  .v-service-kvr .v-steps__header {
    margin-bottom: 22px;
  }

  .v-service-waterguard .vsp-section--mineral,
  .v-service-waterguard .vsp-section--warm,
  .v-service-waterguard .vsp-section--soft,
  .v-service-waterguard .vsp-section--accent,
  .v-service-waterguard .v-steps--process,
  .v-service-waterguard .vsp-section--faq,
  .v-service-waterguard .vsp-section--cta {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .v-service-waterguard .vsp-fit-grid {
    margin-top: 24px;
  }

  .v-service-waterguard .vsp-fit-card {
    border-radius: 18px;
    padding: 20px 18px 18px;
  }

  .v-service-waterguard .vsp-fit-card__icon {
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
  }

  .v-service-waterguard .vsp-fit-card h3 {
    font-size: 22px;
  }

  .v-service-waterguard .vsp-fit-card p {
    font-size: 15px;
    line-height: 1.65;
  }

  .v-service-waterguard .vsp-brand-title {
    font-size: 38px;
  }

  .v-service-waterguard .vsp-benefit {
    padding: 18px 18px 16px;
    border-radius: 16px;
  }

  .v-service-waterguard .vsp-benefit h3 {
    font-size: 20px;
    padding-left: 30px;
  }

  .v-service-waterguard .vsp-benefit h3::before {
    width: 16px;
    height: 16px;
  }

  .v-service-waterguard .vsp-section--accent .vsp-card,
  .v-service-waterguard .vsp-note {
    padding: 18px 16px;
    border-radius: 16px;
  }

  .v-service-waterguard .vsp-split__main > .wp-block-embed.is-provider-youtube,
  .v-service-waterguard .vsp-split__main > .wp-block-embed.is-type-video,
  .v-service-waterguard .vsp-split__main > figure.wp-block-embed {
    border-radius: 18px;
  }

  .v-service-waterguard .vsp-price strong {
    font-size: 34px;
  }

  .v-service-waterguard .v-steps__header {
    margin-bottom: 22px;
  }

  .v-hero .v-hero__ctas .v-btn,
  .vsp-hero .vsp-hero__actions .v-btn,
  .vsp-hero .vsp-hero__actions .vsp-btn {
    width: 100%;
    justify-content: center;
  }

}

.v-service-waterguard .vsp-info-card {
  align-self: start;
  width: min(100%, 470px);
  margin-left: auto;
  padding: 30px 30px;
  border-radius: 26px;
  background: linear-gradient(
      180deg,
      rgba(255,255,255,.34) 0%,
      rgba(255,255,255,.24) 100%
    );
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 18px 50px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.24);
  backdrop-filter: blur(16px) saturate(1.06);
  -webkit-backdrop-filter: blur(16px) saturate(1.06);
  background: linear-gradient(
      180deg,
      rgba(34, 40, 52, .78) 0%,
      rgba(34, 40, 52, .66) 100%
    ) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.08) !important;
  backdrop-filter: blur(14px) saturate(1.02) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.02) !important;
}

.v-service-waterguard .vsp-info-card h2 {
  margin: 0 0 14px;
  font-size: clamp(26px, 2vw, 34px);
  line-height: 1.08;
  letter-spacing: -.03em;
  color: rgba(255,255,255,.97);
  text-wrap: balance;
  color: rgba(255,255,255,.98) !important;
}

.v-service-waterguard .vsp-info-card p {
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 1.68;
  color: rgba(255,255,255,.90);
  color: rgba(255,255,255,.88) !important;
}

.v-service-waterguard .vsp-checks li {
  position: relative;
  padding-left: 24px;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(255,255,255,.90);
  color: rgba(255,255,255,.90) !important;
}

.v-service-waterguard .vsp-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8fbc57;
  box-shadow: 0 0 0 4px rgba(143,188,87,.14);
  transform: translateY(-50%);
  background: #9bcf63 !important;
  box-shadow: 0 0 0 4px rgba(155,207,99,.14) !important;
}

.site-footer,
.v-footer,
footer.site-footer {
  background: linear-gradient(90deg, #10192d 0%, #121f38 100%);
  color: rgba(255,255,255,.88);
  border-radius: 28px 28px 0 0;
  overflow: hidden;
}

.site-footer .footer-inner,
.v-footer__inner,
footer.site-footer .inside-footer-widgets,
footer.site-footer .inside-site-info {
  max-width: 1160px;
  margin: 0 auto;
}

.site-footer .inside-footer-widgets,
.v-footer .footer-columns,
footer.site-footer .inside-footer-widgets {
  padding: 58px 42px 52px;
}

.site-footer .footer-widgets,
.v-footer__grid,
footer.site-footer .footer-widgets {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 54px;
  align-items: start;
}

.site-footer p,
.site-footer li,
.site-footer a,
.v-footer p,
.v-footer li,
.v-footer a,
footer.site-footer p,
footer.site-footer li,
footer.site-footer a {
  font-size: 15px;
  line-height: 1.75;
  color: rgba(255,255,255,.86);
  text-decoration: none;
}

.site-footer a:hover,
.v-footer a:hover,
footer.site-footer a:hover {
  color: #ffffff;
  opacity: 1;
}

.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .widget-title,
.v-footer h2,
.v-footer h3,
.v-footer h4,
.v-footer__title,
footer.site-footer h2,
footer.site-footer h3,
footer.site-footer h4,
footer.site-footer .widget-title {
  margin: 0 0 18px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.34);
}

.site-footer ul,
.v-footer ul,
footer.site-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer li,
.v-footer li,
footer.site-footer li {
  margin: 0 0 8px;
}

.site-footer .footer-brand,
.v-footer__brand,
footer.site-footer .footer-brand {
  text-align: center;
}

.site-footer .footer-brand p,
.v-footer__brand p,
footer.site-footer .footer-brand p {
  margin: 0 0 14px;
}

.site-footer .footer-services,
.v-footer__services,
footer.site-footer .footer-services {
  text-align: center;
}

.site-footer .footer-contact,
.v-footer__contact,
footer.site-footer .footer-contact {
  text-align: center;
}

.site-footer .footer-widget-1,
footer.site-footer .footer-widget-1 {
  text-align: center;
}

.site-footer .footer-widget-2,
footer.site-footer .footer-widget-2 {
  text-align: center;
}

.site-footer .footer-widget-3,
footer.site-footer .footer-widget-3 {
  text-align: center;
}

.site-footer .site-info,
.v-footer__bottom,
footer.site-footer .site-info {
  padding: 16px 24px 20px;
  border-top: 1px solid rgba(255,255,255,.06);
  text-align: center;
  font-size: 13px;
  color: rgba(255,255,255,.48);
}

.site-footer .widget,
.v-footer__col,
footer.site-footer .widget {
  margin-bottom: 0;
}

@media (max-width: 980px) {
  .site-footer .footer-widgets,
  .v-footer__grid,
  footer.site-footer .footer-widgets {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .site-footer .inside-footer-widgets,
  .v-footer .footer-columns,
  footer.site-footer .inside-footer-widgets {
    padding: 42px 24px 38px;
  }

}

/* =========================================================
   ETUSIVU + HUB-SIVUT / LOPULLINEN MOBIILIPATCH
   Rajattu vain etusivuun + hub-palvelukortteihin
   ========================================================= */

/* =========================================================
   ETUSIVUN HERO STATS — DESKTOP
   Stats-rivi takaisin hero-kuvan alalaitaan
   ========================================================= */

#etusivu-hero{
  position: relative;
  z-index: 1;
}

.v-hero__stats--below{
  width: min(calc(100% - 48px), 1200px);
  max-width: none;
  margin: -42px auto 0;
  padding: 0;
  position: relative;
  z-index: 8;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.v-hero__stats--below .v-hero__stats-inner{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;

  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;

  background: rgba(36, 40, 48, 0.42);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 22px;
  box-shadow: 0 16px 34px rgba(0,0,0,0.14);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  overflow: hidden;
}

.v-hero__stats--below .v-hero__stat{
  min-width: 0;
  padding: 18px 16px;
  text-align: center;
  display: block;
}

.v-hero__stats--below .v-hero__stat + .v-hero__stat{
  border-left: 1px solid rgba(255,255,255,0.10);
  border-top: 0;
}

.v-hero__stats--below .v-hero__stat-n{
  display: block;
  font-size: 1.05rem;
  line-height: 1.1;
  margin-bottom: 4px;
  letter-spacing: 0.01em;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

.v-hero__stats--below .v-hero__stat-l{
  display: block;
  font-size: 0.72rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  opacity: 0.88;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}


/* =========================================================
   MOBILE / TABLET
   ========================================================= */

@media (max-width: 768px){

  /* ======================================================
     HERO — ETUSIVU
     ====================================================== */

  #etusivu-hero{
    position: relative !important;
    min-height: auto !important;
    height: auto !important;
    padding-bottom: 0 !important;
    overflow: hidden !important;
  }

  #etusivu-hero .v-hero__inner{
    position: relative !important;
    z-index: 3 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 18px !important;
    padding-bottom: 24px !important;
  }

  #etusivu-hero .v-hero__title{
    font-size: clamp(34px, 7vw, 44px) !important;
    line-height: 1.02 !important;
    margin: 0 0 10px !important;
  }

  #etusivu-hero .v-hero__lead{
    max-width: 34ch !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    margin: 0 !important;
  }

  #etusivu-hero .v-hero__ctas{
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
    margin-top: 8px !important;
    margin-bottom: 0 !important;
    position: relative !important;
    z-index: 5 !important;
  }

  #etusivu-hero .v-hero__ctas .v-btn{
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 5 !important;
  }

  /* HERO CTA / MOBILE POLISH */

  #etusivu-hero .v-btn--primary{
    box-shadow:
      0 10px 22px rgba(0,0,0,.28),
      inset 0 1px 0 rgba(255,255,255,.18) !important;
  }

  #etusivu-hero .v-btn--primary:active{
    transform: translateY(1px) !important;
    box-shadow:
      0 6px 14px rgba(0,0,0,.28),
      inset 0 1px 0 rgba(255,255,255,.12) !important;
  }

  /* ======================================================
     HERO STATS — HERO-KUVAN ALLE
     Käyttää uutta HTML-rakennetta:
     .v-hero__stats.v-hero__stats--below
     ====================================================== */

  .v-hero__stats--below{
    width: min(calc(100% - 24px), 1200px) !important;
    max-width: none !important;
    margin: -10px auto 0 !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 8 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .v-hero__stats--below .v-hero__stats-inner{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0 !important;

    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;

    background: rgba(36,40,48,.52) !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    border-radius: 18px 18px 0 0 !important;
    box-shadow: 0 10px 18px rgba(0,0,0,.16) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    overflow: hidden !important;
  }

  .v-hero__stats--below .v-hero__stat{
    min-width: 0 !important;
    padding: 14px 8px !important;
    text-align: center !important;
    display: block !important;
  }

  .v-hero__stats--below .v-hero__stat + .v-hero__stat{
    border-left: 1px solid rgba(255,255,255,.10) !important;
    border-top: 0 !important;
  }

  .v-hero__stats--below .v-hero__stat-n{
    display: block !important;
    font-size: .95rem !important;
    line-height: 1.1 !important;
    margin-bottom: 4px !important;
    letter-spacing: 0.01em !important;
    color: rgba(255,255,255,.98) !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .v-hero__stats--below .v-hero__stat-l{
    display: block !important;
    font-size: .63rem !important;
    line-height: 1.2 !important;
    letter-spacing: 0.03em !important;
    color: rgba(255,255,255,.75) !important;
    opacity: 1 !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  /* ======================================================
     PALVELUKORTIT — ETUSIVU + HUBIT
     ====================================================== */

  #etusivu-palvelut .v-services__grid,
  #hub-lampopumput-palvelut .v-services__grid,
  #hub-putkiremontit-palvelut .v-services__grid{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  #etusivu-palvelut .v-services__grid > .v-card,
  #hub-lampopumput-palvelut .v-services__grid > .v-card,
  #hub-putkiremontit-palvelut .v-services__grid > .v-card{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: auto !important;
    height: auto !important;
    padding: 18px !important;
  }

  #etusivu-palvelut .v-card__title,
  #hub-lampopumput-palvelut .v-card__title,
  #hub-putkiremontit-palvelut .v-card__title{
    font-size: 20px !important;
    line-height: 1.2 !important;
    margin-bottom: 8px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  #etusivu-palvelut .v-card__desc,
  #hub-lampopumput-palvelut .v-card__desc,
  #hub-putkiremontit-palvelut .v-card__desc{
    font-size: 14px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  #etusivu-palvelut .v-card__link,
  #hub-lampopumput-palvelut .v-card__link,
  #hub-putkiremontit-palvelut .v-card__link{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin-top: 10px !important;
  }

  #etusivu-palvelut,
  #hub-lampopumput-palvelut,
  #hub-putkiremontit-palvelut{
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 640px){

  /* HERO — ETUSIVU */

  #etusivu-hero .v-hero__inner{
    padding: 16px !important;
    padding-bottom: 22px !important;
  }

  #etusivu-hero .v-hero__title{
    font-size: clamp(30px, 9vw, 36px) !important;
  }

  #etusivu-hero .v-hero__lead{
    font-size: 14px !important;
    line-height: 1.4 !important;
    max-width: 30ch !important;
  }

  /* HERO STATS */

  .v-hero__stats--below{
    width: min(calc(100% - 24px), 1200px) !important;
    margin: -16px auto 0 !important;
    position: relative !important;
    z-index: 8 !important;
    padding: 0 !important;
  }

  .v-hero__stats--below .v-hero__stats-inner{
    border-radius: 18px 18px 0 0 !important;
  }

  .v-hero__stats--below .v-hero__stat{
    padding: 16px 8px !important;
    text-align: center !important;
  }

  .v-hero__stats--below .v-hero__stat-n{
    font-size: 1rem !important;
  }

  .v-hero__stats--below .v-hero__stat-l{
    font-size: 0.64rem !important;
  }

  /* seuraava osio kiinni stats-palkkiin */

  #etusivu-palvelut{
    margin-top: 0 !important;
    padding-top: 28px !important;
  }

  /* PALVELUKORTIT */

  #etusivu-palvelut .v-services__grid > .v-card,
  #hub-lampopumput-palvelut .v-services__grid > .v-card,
  #hub-putkiremontit-palvelut .v-services__grid > .v-card{
    padding: 16px !important;
  }

  #etusivu-palvelut .v-card__title,
  #hub-lampopumput-palvelut .v-card__title,
  #hub-putkiremontit-palvelut .v-card__title{
    font-size: 18px !important;
  }

  #etusivu-palvelut .v-card__desc,
  #hub-lampopumput-palvelut .v-card__desc,
  #hub-putkiremontit-palvelut .v-card__desc{
    font-size: 14px !important;
  }
}

/* =========================================================
   ETUSIVU HERO TRUST FIX (desktop)
   Nostaa stats-rivin hero-kuvan päälle
   ========================================================= */

#etusivu-hero{
  position: relative;
  z-index: 1;
}

#etusivu-hero + .v-hero__stats{
  position: relative;
  margin-top: -80px;   /* nostaa hero-kuvan päälle */
  z-index: 5;
  width: min(calc(100% - 48px), 1200px);
  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   MOBILE — palautetaan normaaliin paikkaan
   ========================================================= */

@media (max-width:768px){

  #etusivu-hero + .v-hero__stats{
    margin-top: -10px !important;
    width: min(calc(100% - 24px), 1200px) !important;
  }

}

.ivlp-estimate-block .ivlp-estimate-block__calc {
  margin-top: 18px;
}

.ivlp-estimate-block .ivlp-estimate-block__form {
  max-width: 640px;
  margin: 32px auto 0;
  padding: 32px;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
}

.ivlp-estimate-block .ivlp-estimate-block__form-head {
  margin-bottom: 18px;
  text-align: left;
}

.ivlp-estimate-block .ivlp-estimate-block__form-head h3 {
  margin: 0 0 8px;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.ivlp-estimate-block .ivlp-estimate-block__form-head p:last-child {
  margin: 0;
  color: rgba(22,32,43,.68);
  max-width: 620px;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-container {
  margin: 0;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-form {
  width: 100%;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-field-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 18px;
}

.ivlp-estimate-block #wpforms-1998-field_4-container,
.ivlp-estimate-block #wpforms-1998-field_1-container,
.ivlp-estimate-block #wpforms-1998-field_3-container,
.ivlp-estimate-block #wpforms-1998-field_14-container {
  width: 100%;
}

.ivlp-estimate-block #wpforms-1998-field_3-container,
.ivlp-estimate-block #wpforms-1998-field_14-container {
  grid-column: 1 / -1;
}

.ivlp-estimate-block #wpforms-1998-field_2-container,
.ivlp-estimate-block #wpforms-1998-field_5-container,
.ivlp-estimate-block #wpforms-1998-field_6-container,
.ivlp-estimate-block #wpforms-1998-field_7-container,
.ivlp-estimate-block #wpforms-1998-field_8-container,
.ivlp-estimate-block #wpforms-1998-field_9-container,
.ivlp-estimate-block #wpforms-1998-field_10-container,
.ivlp-estimate-block #wpforms-1998-field_11-container,
.ivlp-estimate-block #wpforms-1998-field_12-container,
.ivlp-estimate-block #wpforms-1998-field_13-container {
  display: none !important;
}

.ivlp-estimate-block #ivlpFormWrap input,
.ivlp-estimate-block #ivlpFormWrap textarea,
.ivlp-estimate-block #ivlpFormWrap select {
  width: 100%;
}

@media (max-width: 700px) {
  .ivlp-estimate-block .ivlp-estimate-block__form {
    padding: 22px 18px;
  }

  .ivlp-estimate-block #ivlpFormWrap .wpforms-field-container {
    grid-template-columns: 1fr;
  }

  .ivlp-estimate-block #wpforms-1998-field_3-container,
  .ivlp-estimate-block #wpforms-1998-field_14-container {
    grid-column: auto;
  }
}

/* =========================================================
   IVLP — Visuaalinen viimeistely
   ========================================================= */

/* Form head */
.ivlp-estimate-block .ivlp-estimate-block__form-head p:last-child {
  color: rgba(22,32,43,.75);
  font-size: 15px;
  line-height: 1.6;
}

/* WPForms kentät */
.ivlp-estimate-block #ivlpFormWrap .wpforms-container input[type="text"],
.ivlp-estimate-block #ivlpFormWrap .wpforms-container input[type="tel"],
.ivlp-estimate-block #ivlpFormWrap .wpforms-container input[type="email"],
.ivlp-estimate-block #ivlpFormWrap .wpforms-container select {
  height: 48px !important;
  border: 1px solid rgba(0,0,0,0.10) !important;
  border-radius: 10px !important;
  font-size: 15px !important;
  padding: 10px 14px !important;
  background: #fff !important;
  box-shadow: none !important;
  transition: border-color .15s, box-shadow .15s !important;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-container textarea {
  border: 1px solid rgba(0,0,0,0.10) !important;
  border-radius: 10px !important;
  font-size: 15px !important;
  padding: 12px 14px !important;
  background: #fff !important;
  box-shadow: none !important;
  min-height: 96px !important;
  transition: border-color .15s, box-shadow .15s !important;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-container input:focus,
.ivlp-estimate-block #ivlpFormWrap .wpforms-container select:focus,
.ivlp-estimate-block #ivlpFormWrap .wpforms-container textarea:focus {
  border-color: #4F6F2F !important;
  box-shadow: 0 0 0 3px rgba(79,111,47,0.08) !important;
  outline: none !important;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-container label {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: rgba(22,32,43,0.80) !important;
  margin-bottom: 6px !important;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-field {
  margin-bottom: 16px !important;
}

/* Submit-nappi */
.ivlp-estimate-block #ivlpFormWrap .wpforms-submit-container {
  margin-top: 6px !important;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-container .wpforms-submit {
  width: 100% !important;
  border-radius: 10px !important;
  padding: 15px 24px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  background: #4F6F2F !important;
  box-shadow: 0 4px 14px rgba(79,111,47,0.22) !important;
  letter-spacing: 0.01em !important;
  transition: background .15s, box-shadow .15s, transform .12s !important;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-container .wpforms-submit:hover {
  background: #3d5a24 !important;
  box-shadow: 0 6px 20px rgba(79,111,47,0.28) !important;
  transform: translateY(-1px) !important;
}

/* Tekstien luettavuus — vsp-card IVLP */
.v-service-page.v-service-ivlp .vsp-card p {
  font-size: 15px;
  line-height: 1.72;
  color: rgba(58,58,58,0.88);
}

/* vsp-note sisällä listat (vaalea tausta → tumma teksti) */
.v-service-page.v-service-ivlp .vsp-note .vsp-checks li {
  font-size: 15px;
  line-height: 1.58;
  color: rgba(0,0,0,0.75);
}

/* vsp-fit-card teksti */
.v-service-ivlp .vsp-fit-card p {
  font-size: 15px;
  line-height: 1.68;
  color: rgba(31,42,68,0.85);
}

/* Kortit — yhtenäinen border-radius */
.v-service-page.v-service-ivlp .vsp-note,
.v-service-page.v-service-ivlp .vsp-card {
  border-radius: 20px;
}

/* vsp-fit-card — valkoinen tausta, kohinaton */
.v-service-ivlp .vsp-fit-card {
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.06);
}

/* Mobile */
@media (max-width: 700px) {
  .ivlp-estimate-block .ivlp-estimate-block__form {
    padding: 24px 20px;
  }
}

/* Form head — isompi otsikko, selkeä CTA */
.ivlp-estimate-block .ivlp-estimate-block__form-head h3 {
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin-bottom: 10px;
}

/* "Suositellut laitteet" — hengittävyys */
.ivlp-estimate-block .ivlp-estimate-block__form-head {
  margin-bottom: 24px;
}

/* =========================================================
   VARMEA – SERVICE PAGES (CLEAN VERSION)
   Huolto / Päivystys / Korjausarvio / Hub
   ========================================================= */

.v-service-huolto,
.v-service-paivystys,
.v-service-korjausarvio,
.v-service-huolto-korjaus {
  --section-space: clamp(56px, 6vw, 88px);
  --content-width: 1100px;

  --c-text: #3a3a3a;
  --c-dark: #161d2a;
  --c-green: #4F6F2F;
  --c-muted: #6b7280;
  --c-bg: #f5f6f2;

  background: var(--c-bg);
  color: var(--c-text);
}

/* ===== SECTION RHYTHM ===== */

.v-service-huolto .vsp-section,
.v-service-paivystys .vsp-section,
.v-service-korjausarvio .vsp-section {
  padding: 72px 0;
}

.v-service-huolto .vsp-hero + .vsp-section,
.v-service-paivystys .vsp-hero + .vsp-section,
.v-service-korjausarvio .vsp-hero + .vsp-section,
.v-service-huolto-korjaus .vsp-hero + .vsp-section {
  padding-top: clamp(44px, 5vw, 60px);
}

/* ===== CONTENT WIDTH ===== */

.v-service-huolto .vsp-shell,
.v-service-paivystys .vsp-shell,
.v-service-korjausarvio .vsp-shell,
.v-service-huolto-korjaus .vsp-shell {
  max-width: var(--content-width);
  margin: 0 auto;
}

/* ===== HERO ===== */

.v-service-huolto .vsp-hero,
.v-service-paivystys .vsp-hero,
.v-service-korjausarvio .vsp-hero,
.v-service-huolto-korjaus .vsp-hero {
  padding: 80px 0 0;
}

.v-service-huolto .vsp-hero__overlay,
.v-service-paivystys .vsp-hero__overlay,
.v-service-korjausarvio .vsp-hero__overlay,
.v-service-huolto-korjaus .vsp-hero__overlay {
  background:
    linear-gradient(90deg, rgba(13,19,30,.9) 0%, rgba(13,19,30,.6) 45%, rgba(13,19,30,.2) 80%),
    linear-gradient(180deg, rgba(13,19,30,.2) 0%, rgba(13,19,30,.6) 100%);
}

.v-service-huolto .vsp-hero__inner,
.v-service-paivystys .vsp-hero__inner,
.v-service-korjausarvio .vsp-hero__inner,
.v-service-huolto-korjaus .vsp-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(260px, .6fr);
  gap: 36px;
  align-items: start;
}

.v-service-huolto .vsp-hero__title,
.v-service-paivystys .vsp-hero__title,
.v-service-korjausarvio .vsp-hero__title,
.v-service-huolto-korjaus .vsp-hero__title {
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  line-height: .95;
  letter-spacing: -.04em;
  margin-bottom: 18px;
}

.v-service-huolto .vsp-hero__lead,
.v-service-paivystys .vsp-hero__lead,
.v-service-korjausarvio .vsp-hero__lead,
.v-service-huolto-korjaus .vsp-hero__lead {
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(255,255,255,.82);
}

.v-service-huolto .vsp-brand__e,
.v-service-paivystys .vsp-brand__e,
.v-service-korjausarvio .vsp-brand__e,
.v-service-huolto-korjaus .vsp-brand__e {
  color: var(--c-green-l);
}

/* ===== INFO CARD ===== */

.v-service-huolto .vsp-info-card,
.v-service-paivystys .vsp-info-card,
.v-service-korjausarvio .vsp-info-card {
  padding: 26px 26px;
  border-radius: 22px;
  background: linear-gradient(
      180deg,
      rgba(34,40,52,.78) 0%,
      rgba(34,40,52,.66) 100%
    );
  backdrop-filter: blur(14px) saturate(1.02);
  -webkit-backdrop-filter: blur(14px) saturate(1.02);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow:
    0 18px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.08);
}

.v-service-huolto .vsp-info-card h2,
.v-service-paivystys .vsp-info-card h2,
.v-service-korjausarvio .vsp-info-card h2 {
  color: rgba(255,255,255,.98);
  font-size: clamp(19px, 1.6vw, 23px);
  margin: 0 0 12px;
  line-height: 1.2;
  letter-spacing: -.02em;
}

.v-service-huolto .vsp-info-card p,
.v-service-paivystys .vsp-info-card p,
.v-service-korjausarvio .vsp-info-card p {
  color: rgba(255,255,255,.84);
  font-size: 14.5px;
  line-height: 1.65;
  margin: 0 0 14px;
}

.v-service-huolto .vsp-info-card .vsp-checks li,
.v-service-paivystys .vsp-info-card .vsp-checks li,
.v-service-korjausarvio .vsp-info-card .vsp-checks li {
  color: rgba(255,255,255,.88);
}

.v-service-huolto .vsp-info-card .vsp-checks li::before,
.v-service-paivystys .vsp-info-card .vsp-checks li::before,
.v-service-korjausarvio .vsp-info-card .vsp-checks li::before {
  background: #8fbc57;
  box-shadow: 0 0 0 4px rgba(143,188,87,.14);
}

/* ===== SECTION HEAD ===== */

.v-service-huolto .vsp-section-head h2,
.v-service-paivystys .vsp-section-head h2,
.v-service-korjausarvio .vsp-section-head h2,
.v-service-huolto-korjaus .vsp-section-head h2 {
  font-size: clamp(24px, 2.5vw, 34px);
  letter-spacing: -.035em;
  line-height: 1.1;
  margin-bottom: 10px;
}

.v-service-huolto .vsp-section-head p,
.v-service-paivystys .vsp-section-head p,
.v-service-korjausarvio .vsp-section-head p,
.v-service-huolto-korjaus .vsp-section-head p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--c-muted);
}

/* ===== CARDS ===== */

.v-service-huolto .vsp-card,
.v-service-paivystys .vsp-card,
.v-service-korjausarvio .vsp-card,
.v-service-huolto-korjaus .vsp-card {
  padding: 22px;
  border-radius: 16px;
  background: #fff;

  border: 1px solid rgba(22,29,42,.06);

  box-shadow:
    0 2px 8px rgba(15,23,42,.04),
    0 10px 26px rgba(15,23,42,.05);

  transition: transform .18s ease, box-shadow .18s ease;
}

.v-service-huolto .vsp-card:hover,
.v-service-paivystys .vsp-card:hover,
.v-service-korjausarvio .vsp-card:hover,
.v-service-huolto-korjaus .vsp-card:hover {
  transform: translateY(-3px);
  box-shadow:
    0 6px 18px rgba(15,23,42,.06),
    0 20px 40px rgba(15,23,42,.08);
}

/* ===== FIT GRID ===== */

.vsp-fit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.vsp-fit-card {
  padding: 22px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(22,29,42,.06);
  box-shadow: 0 4px 16px rgba(15,23,42,.05);
}

/* ===== CTA ===== */

/* Restore white text for checks--light inside the dark CTA section
   (the general huolto override above sets dark navy, which is correct
   for light-background cards but breaks the dark CTA background) */
.v-service-huolto #huolto-yhteydenotto .vsp-checks--light li,
.v-service-paivystys #paivystys-yhteydenotto .vsp-checks--light li,
.v-service-korjausarvio #korjausarvio-cta .vsp-checks--light li {
  color: rgba(255,255,255,.88);
}
.v-service-huolto #huolto-yhteydenotto .vsp-checks--light li::before,
.v-service-paivystys #paivystys-yhteydenotto .vsp-checks--light li::before,
.v-service-korjausarvio #korjausarvio-cta .vsp-checks--light li::before {
  background: #8EA85A;
}

.v-service-huolto .vsp-cta,
.v-service-paivystys .vsp-cta,
.v-service-korjausarvio .vsp-cta,
.v-service-huolto-korjaus .vsp-cta {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 48px;
}

.v-service-huolto .vsp-cta__form,
.v-service-paivystys .vsp-cta__form,
.v-service-korjausarvio .vsp-cta__form,
.v-service-huolto-korjaus .vsp-cta__form {
  padding: 26px;
  border-radius: 18px;
  background: rgba(255,255,255,0.94);
}

/* ===== MOBILE ===== */

@media (max-width: 900px) {

  .v-service-huolto .vsp-hero__inner,
  .v-service-paivystys .vsp-hero__inner,
  .v-service-korjausarvio .vsp-hero__inner,
  .v-service-huolto-korjaus .vsp-hero__inner {
    grid-template-columns: 1fr;
  }

  .vsp-fit-grid {
    grid-template-columns: 1fr;
  }

  .v-service-huolto .vsp-cta,
  .v-service-paivystys .vsp-cta,
  .v-service-korjausarvio .vsp-cta,
  .v-service-huolto-korjaus .vsp-cta {
    grid-template-columns: 1fr;
  }

}

/* ── Hub hero layout ── */

.v-service-huolto-korjaus .v-hero {
  position: relative;
  z-index: 1;
  overflow: hidden;
}

.v-service-huolto-korjaus .v-hero__bg,
.v-service-huolto-korjaus .v-hero__overlay {
  position: absolute;
  inset: 0;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
}

.v-service-huolto-korjaus .v-hero__bg {
  animation: vZoomHub 20s ease-out forwards;
}

@keyframes vZoomHub {
  from { transform: translateX(-50%) scale(1.05); }
  to   { transform: translateX(-50%) scale(1.00); }
}

.v-service-huolto-korjaus .v-hero__inner {
  position: relative;
  z-index: 2;
}

.v-service-huolto-korjaus .v-hero__inner .v-wrap {
  max-width: var(--max-w);
}

/* =========================================================
   VARMEA – HUOLTOSIVUPERHE VIIMEISTELY
   Huolto / Päivystys / Korjausarvio / Hub
   ========================================================= */

/* ── Split layout scoping ── */

.v-service-huolto .vsp-split__main,
.v-service-paivystys .vsp-split__main,
.v-service-korjausarvio .vsp-split__main {
  min-width: 0;
}

.v-service-huolto .vsp-split__side,
.v-service-paivystys .vsp-split__side,
.v-service-korjausarvio .vsp-split__side {
  min-width: 0;
  padding-top: 36px;
}

/* ── Fit-card icon + typography for huolto family ── */

.v-service-huolto .vsp-fit-grid,
.v-service-paivystys .vsp-fit-grid,
.v-service-korjausarvio .vsp-fit-grid {
  margin-top: 28px;
}

.v-service-huolto .vsp-fit-card,
.v-service-paivystys .vsp-fit-card,
.v-service-korjausarvio .vsp-fit-card {
  padding: 26px 24px 24px;
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(22,29,42,.07);
  box-shadow:
    0 2px 6px rgba(15,23,42,.03),
    0 10px 28px rgba(15,23,42,.05);
  transition: transform .2s ease, box-shadow .2s ease;
}

.v-service-huolto .vsp-fit-card:hover,
.v-service-paivystys .vsp-fit-card:hover,
.v-service-korjausarvio .vsp-fit-card:hover {
  transform: translateY(-3px);
  box-shadow:
    0 6px 16px rgba(15,23,42,.06),
    0 20px 42px rgba(15,23,42,.08);
}

.v-service-huolto .vsp-fit-card__icon,
.v-service-paivystys .vsp-fit-card__icon,
.v-service-korjausarvio .vsp-fit-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: linear-gradient(180deg, #f7faf3 0%, #edf4e4 100%);
  border: 1px solid rgba(79,111,47,.14);
  box-shadow: 0 6px 14px rgba(79,111,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.v-service-huolto .vsp-fit-card__icon::before,
.v-service-paivystys .vsp-fit-card__icon::before,
.v-service-korjausarvio .vsp-fit-card__icon::before {
  content: "";
  display: block;
  width: 12px;
  height: 7px;
  border-left: 2.5px solid #4F6F2F;
  border-bottom: 2.5px solid #4F6F2F;
  transform: rotate(-45deg) translateY(-1px);
}

.v-service-huolto .vsp-fit-card h3,
.v-service-paivystys .vsp-fit-card h3,
.v-service-korjausarvio .vsp-fit-card h3 {
  margin: 0 0 10px;
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.2;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-huolto .vsp-fit-card p,
.v-service-paivystys .vsp-fit-card p,
.v-service-korjausarvio .vsp-fit-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(31,42,68,.82);
}

/* ── vsp-card scoped typography for huolto family ── */

.v-service-huolto .vsp-card,
.v-service-paivystys .vsp-card,
.v-service-korjausarvio .vsp-card {
  border-top: 2px solid rgba(79,111,47,.22);
}

.v-service-huolto .vsp-card h3,
.v-service-paivystys .vsp-card h3,
.v-service-korjausarvio .vsp-card h3 {
  margin: 0 0 10px;
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.22;
  letter-spacing: -.02em;
  color: #1f2a44;
}

.v-service-huolto .vsp-card p,
.v-service-paivystys .vsp-card p,
.v-service-korjausarvio .vsp-card p {
  margin: 0 0 14px;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(31,42,68,.82);
}

.v-service-huolto .vsp-card p:last-child,
.v-service-paivystys .vsp-card p:last-child,
.v-service-korjausarvio .vsp-card p:last-child {
  margin-bottom: 0;
}

/* ── vsp-note for huolto family ── */

.v-service-huolto .vsp-note,
.v-service-paivystys .vsp-note,
.v-service-korjausarvio .vsp-note {
  padding: 22px 20px;
  border-radius: 20px;
  background: #f8f9f5;
  border: 1px solid rgba(22,29,42,.08);
  box-shadow: 0 10px 30px rgba(15,23,42,.05);
}

.v-service-huolto .vsp-note h3,
.v-service-paivystys .vsp-note h3,
.v-service-korjausarvio .vsp-note h3 {
  margin: 0 0 14px;
  font-size: 1.08rem;
  color: #1f2a44 !important;
}

.v-service-huolto .vsp-note p,
.v-service-huolto .vsp-note ul,
.v-service-huolto .vsp-note li,
.v-service-paivystys .vsp-note p,
.v-service-paivystys .vsp-note ul,
.v-service-paivystys .vsp-note li,
.v-service-korjausarvio .vsp-note p,
.v-service-korjausarvio .vsp-note ul,
.v-service-korjausarvio .vsp-note li {
  color: #1f2a44 !important;
}

/* ── vsp-pricing table ── */

.vsp-pricing {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}

.vsp-pricing tbody tr {
  border-bottom: 1px solid rgba(22,29,42,.06);
}

.vsp-pricing tbody tr:last-child {
  border-bottom: none;
}

.vsp-pricing tbody tr:nth-child(odd) {
  background: rgba(79,111,47,.03);
}

.vsp-pricing td {
  padding: 13px 16px;
  line-height: 1.5;
  color: #2a3138;
}

.vsp-pricing td:first-child {
  font-weight: 500;
}

.vsp-pricing td:last-child {
  text-align: right;
  font-weight: 700;
  color: #1f2a44;
  white-space: nowrap;
}

.vsp-pricing__note {
  margin: 16px 0 0;
  font-size: 13px;
  line-height: 1.62;
  color: rgba(58,58,58,.62);
}

/* ── vsp-tool price widget ── */

.vsp-tool {
  margin-top: 28px;
}

.vsp-tool__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(240px, .55fr);
  gap: 28px;
  align-items: start;
}

.vsp-tool__groups {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.vsp-tool__group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.vsp-tool__group-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: rgba(42,49,56,.52);
}

.vsp-tool__opts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.vsp-tool__opt {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1.5px solid rgba(22,29,42,.10);
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  color: #2a3138;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
  user-select: none;
}

.vsp-tool__opt:has(input:checked) {
  border-color: #4F6F2F;
  background: rgba(79,111,47,.07);
  color: #3a5620;
  font-weight: 600;
}

.vsp-tool__opt input[type="radio"] {
  display: none;
}

.vsp-tool__sidebar {
  position: sticky;
  top: 28px;
}

.vsp-tool__result {
  padding: 26px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid rgba(22,29,42,.08);
  box-shadow:
    0 4px 12px rgba(15,23,42,.05),
    0 16px 36px rgba(15,23,42,.07);
}

.vsp-tool__price {
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 800;
  letter-spacing: -.03em;
  color: #1f2a44;
  line-height: 1.1;
  margin: 0 0 10px;
}

.vsp-tool__price-hi {
  font-size: .72em;
  font-weight: 600;
  color: rgba(31,42,68,.5);
}

.vsp-tool__note {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(42,49,56,.7);
  margin: 0 0 10px;
}

.vsp-tool__note--small {
  font-size: 12.5px;
  color: rgba(42,49,56,.52);
  margin-bottom: 16px;
}

/* ── Huolto sales tool (vht) ── */

.vht-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 20px;
  background: #fff;
  box-shadow:
    0 2px 8px rgba(15,23,42,.06),
    0 12px 32px rgba(15,23,42,.09);
  overflow: hidden;
  margin-top: 36px;
}

.vht-card__selects {
  padding: 40px 44px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  border-right: 1px solid rgba(15,23,42,.08);
}

.vht-field {
  display: flex;
  flex-direction: column;
}

.vht-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(42,49,56,.5);
  margin-bottom: 9px;
}

.vht-select {
  display: block;
  width: 100%;
  height: 52px;
  padding: 0 44px 0 16px;
  border-radius: 10px;
  border: 1.5px solid rgba(15,23,42,.13);
  background-color: #fafaf9;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%234F6F2F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  color: #1d2a22;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}

.vht-select:focus {
  outline: none;
  border-color: #4F6F2F;
  box-shadow: 0 0 0 3px rgba(79,111,47,.13);
}

.vht-card__result {
  padding: 40px 44px;
  background: linear-gradient(145deg, #f4f8ef 0%, #eaf1e2 100%);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.vht-result__eyebrow {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #4F6F2F;
  margin: 0 0 6px;
}

.vht-result__service-name {
  font-size: 15px;
  font-weight: 700;
  color: #1d2a22;
  margin: 0 0 10px;
  line-height: 1.3;
}

.vht-result__price {
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 800;
  letter-spacing: -.03em;
  color: #1d2a22;
  line-height: 1.1;
  margin: 0 0 10px;
}

.vht-result__note {
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(42,49,56,.65);
  margin: 0 0 16px;
}

.vht-result__content {
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 10px;
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(79,111,47,.15);
}

.vht-result__content-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: rgba(42,49,56,.5);
  margin: 0 0 10px;
}

.vht-result__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.vht-result__list li {
  font-size: 13px;
  line-height: 1.5;
  color: #1d2a22;
  padding-left: 18px;
  position: relative;
}

.vht-result__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4F6F2F;
  flex-shrink: 0;
}

.vht-result__disclaimer {
  font-size: 11.5px;
  color: rgba(42,49,56,.45);
  line-height: 1.5;
  margin: 0 0 20px;
}

.vht-cta {
  align-self: flex-start;
}

.vht-help {
  font-size: 14px;
  color: rgba(0,0,0,0.6);
  margin-top: 8px;
}

.vht-disclaimer {
  font-size: 13.5px;
  color: rgba(0,0,0,0.6);
  margin-top: 14px;
  line-height: 1.5;
}

/* ── Summary bar (single-line format) ── */

.vht-summary__text {
  color: rgba(42,49,56,.75);
  font-size: 13.5px;
}

.vht-summary__text strong {
  color: #1d2a22;
  font-weight: 700;
  font-size: 14px;
}

/* ── Huolto transparency block ── */

.vht-transparency {
  max-width: 900px;
}

.vht-transparency__head {
  margin-bottom: 36px;
}

.vht-transparency__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.vht-trans-box {
  padding: 28px 32px;
  border-radius: 16px;
  background: #fff;
  border: 1.5px solid rgba(15,23,42,.08);
}

.vht-trans-box h3 {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 16px;
  color: #1d2a22;
}

.vht-trans-box--included {
  border-color: rgba(79,111,47,.25);
  background: #f8faf5;
}

/* ── CTA summary bar ── */

.vht-summary-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  align-items: center;
  padding: 14px 20px;
  border-radius: 12px;
  background: rgba(79,111,47,.09);
  border: 1px solid rgba(79,111,47,.2);
  margin-bottom: 20px;
  font-size: 13.5px;
}

.vht-summary__item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.vht-summary__item--price .vht-summary__val {
  font-weight: 700;
  color: #3a5620;
}

.vht-summary__key {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(42,49,56,.5);
}

.vht-summary__val {
  font-weight: 600;
  color: #1d2a22;
}

/* ── Responsive ── */

@media (max-width: 780px) {
  .vht-card {
    grid-template-columns: 1fr;
  }

  .vht-card__selects {
    border-right: none;
    border-bottom: 1px solid rgba(15,23,42,.08);
    padding: 28px 24px;
  }

  .vht-card__result {
    padding: 28px 24px;
  }

  .vht-transparency__cols {
    grid-template-columns: 1fr;
  }
}

/* ── vsp-phone-cta ── */

.vsp-phone-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 40px 20px;
  text-align: center;
}

.vsp-phone-cta__note {
  margin: 0;
  font-size: 14px;
  color: rgba(58,58,58,.62);
}

.vsp-btn--lg {
  min-height: 56px;
  padding: 0 28px;
  font-size: 1.08rem;
}

/* ── vsp-trust-card + vsp-form-trust (korjausarvio lomake) ── */

.vsp-form-trust {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(240px, .6fr);
  gap: 48px;
  align-items: start;
}

.vsp-trust-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: sticky;
  top: 28px;
}

.vsp-trust-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 18px 16px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(22,29,42,.07);
  box-shadow: 0 4px 14px rgba(15,23,42,.05);
}

.vsp-trust-card__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(79,111,47,.07);
  border: 1px solid rgba(79,111,47,.12);
}

.vsp-trust-card h3 {
  margin: 0 0 4px;
  font-size: 14.5px;
  font-weight: 700;
  color: #1f2a44;
  letter-spacing: -.01em;
}

.vsp-trust-card p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.62;
  color: rgba(31,42,68,.7);
}

/* ── Korjausarvio readability polish ── */

.v-service-korjausarvio .vsp-section-head p {
  font-size: 15.8px;
  line-height: 1.74;
  color: #556070;
  max-width: 62ch;
}

.v-service-korjausarvio .vsp-fit-card h3 {
  margin-bottom: 12px;
  font-size: clamp(18px, 1.35vw, 21px);
}

.v-service-korjausarvio .vsp-fit-card p {
  font-size: 15.6px;
  line-height: 1.7;
  color: #344153;
}

.v-service-korjausarvio .vsp-card {
  padding: 24px 22px;
}

.v-service-korjausarvio .vsp-card h3 {
  margin-bottom: 12px;
  font-size: clamp(17px, 1.25vw, 19.5px);
}

.v-service-korjausarvio .vsp-card .vsp-checks li,
.v-service-korjausarvio .vsp-note .vsp-checks li {
  font-size: 15.2px;
  line-height: 1.68;
}

.v-service-korjausarvio .vsp-card .vsp-checks li,
.v-service-korjausarvio .vsp-note .vsp-checks li,
.v-service-korjausarvio .vsp-info-card .vsp-checks li {
  color: #334155 !important;
}

.v-service-korjausarvio .vsp-card .vsp-checks li::before,
.v-service-korjausarvio .vsp-note .vsp-checks li::before,
.v-service-korjausarvio .vsp-info-card .vsp-checks li::before {
  background: #4F6F2F;
  box-shadow: 0 0 0 4px rgba(79,111,47,.10);
}

.v-service-korjausarvio .vsp-note h3 {
  margin-bottom: 16px;
  font-size: 1.12rem;
  font-weight: 700;
}

.v-service-korjausarvio .vsp-note {
  box-shadow: 0 14px 34px rgba(15,23,42,.06);
}

.v-service-korjausarvio #korjausarvio-prosessi .v-steps__lead {
  color: rgba(13,17,23,.72);
  max-width: 58ch;
}

.v-service-korjausarvio #korjausarvio-prosessi .v-step__desc {
  font-size: 15.9px;
  line-height: 1.7;
  color: rgba(13,17,23,.76);
}

.v-service-korjausarvio #korjausarvio-lomake .vsp-form-trust {
  gap: 56px;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-container {
  padding: 28px 28px 24px;
  border-radius: 22px;
  background: #ffffff;
  border: 1px solid rgba(22,29,42,.08);
  box-shadow:
    0 8px 24px rgba(15,23,42,.05),
    0 22px 50px rgba(15,23,42,.07);
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-field {
  margin-bottom: 18px !important;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-container label {
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: -.01em;
  color: #243041 !important;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="text"],
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="tel"],
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="email"],
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container select,
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container textarea {
  border-radius: 14px !important;
  border: 1px solid rgba(31,42,68,.14) !important;
  background: #fbfcfa !important;
  color: #1f2937 !important;
  font-size: 15.5px !important;
  line-height: 1.5 !important;
  box-shadow: none !important;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="text"],
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="tel"],
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="email"],
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container select {
  min-height: 52px !important;
  padding: 12px 14px !important;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-container textarea {
  min-height: 140px !important;
  padding: 14px 16px !important;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input:focus,
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container select:focus,
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container textarea:focus {
  border-color: rgba(79,111,47,.55) !important;
  box-shadow: 0 0 0 4px rgba(79,111,47,.11) !important;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-submit-container {
  padding-top: 8px !important;
}

.v-service-korjausarvio #korjausarvio-lomake .wpforms-container .wpforms-submit {
  min-height: 56px;
  padding: 0 28px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -.01em;
  box-shadow: 0 10px 24px rgba(79,111,47,.18);
}

.v-service-korjausarvio #korjausarvio-lomake .vsp-trust-card {
  padding: 20px 18px;
  border-radius: 18px;
}

.v-service-korjausarvio #korjausarvio-lomake .vsp-trust-card h3 {
  margin-bottom: 6px;
  font-size: 15.2px;
}

.v-service-korjausarvio #korjausarvio-lomake .vsp-trust-card p {
  font-size: 14.2px;
  line-height: 1.66;
  color: #516072;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-cta {
  gap: 36px;
  align-items: stretch;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-eyebrow--light {
  color: #c7d8a3;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-cta__content {
  padding: 10px 0;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-cta__content h2 {
  max-width: 14ch;
  line-height: 1.05;
  text-shadow: 0 1px 2px rgba(0,0,0,.15);
}

.v-service-korjausarvio #korjausarvio-cta .vsp-cta__content p {
  font-size: 16px;
  line-height: 1.72;
  color: rgba(255,255,255,.9);
}

.v-service-korjausarvio #korjausarvio-cta .vsp-checks--light li {
  font-size: 15.4px;
  line-height: 1.7;
  color: #f6f8fb !important;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-checks--light li::before {
  background: #d8e6b9;
  box-shadow: 0 0 0 4px rgba(216,230,185,.12);
}

.v-service-korjausarvio #korjausarvio-cta .vsp-cta__phone span {
  font-size: .96rem;
  font-weight: 600;
  color: rgba(255,255,255,.8);
}

.v-service-korjausarvio #korjausarvio-cta .vsp-cta__phone a {
  font-size: 1.45rem;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-cta__form {
  padding: 24px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.11) 0%, rgba(255,255,255,.07) 100%);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 20px 42px rgba(6,12,22,.22);
}

.v-service-korjausarvio #korjausarvio-cta .vsp-note {
  height: 100%;
  padding: 2px;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-note h3,
.v-service-korjausarvio #korjausarvio-cta .vsp-note p,
.v-service-korjausarvio #korjausarvio-cta .vsp-note ul,
.v-service-korjausarvio #korjausarvio-cta .vsp-note li,
.v-service-korjausarvio #korjausarvio-cta .vsp-note span,
.v-service-korjausarvio #korjausarvio-cta .vsp-note .vsp-checks,
.v-service-korjausarvio #korjausarvio-cta .vsp-note .vsp-checks li {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-note h3 {
  margin-bottom: 16px;
  font-size: 1.14rem;
  font-weight: 700;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-note li {
  font-weight: 500;
}

.v-service-korjausarvio #korjausarvio-cta .vsp-note .vsp-checks li::marker {
  color: #ffffff !important;
  opacity: 1 !important;
}

@media (max-width: 900px) {
  .v-service-korjausarvio #korjausarvio-lomake .vsp-form-trust {
    gap: 28px;
  }

  .v-service-korjausarvio #korjausarvio-lomake .wpforms-container {
    padding: 22px 20px 20px;
  }

  .v-service-korjausarvio #korjausarvio-cta .vsp-cta__content h2 {
    max-width: none;
  }
}

/* ── v-hub-guide + v-section--flush (hub opaste) ── */

.v-section--flush {
  padding: 0;
}

.v-service-huolto-korjaus .v-section--flush {
  padding: 28px 0 36px;
}

.v-hub-guide {
  margin: 0;
  padding: 20px 26px;
  border-radius: 14px;
  background: rgba(79,111,47,.06);
  border: 1px solid rgba(79,111,47,.13);
  font-size: 15px;
  line-height: 1.7;
  color: #2a3138;
}

.v-hub-guide strong {
  font-weight: 700;
  color: #1f2a44;
  display: block;
  margin-bottom: 4px;
}

.v-hub-guide a:not(.v-btn) {
  color: #4F6F2F !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── Hub services section – temper title size + fix lead alignment ── */

.v-service-huolto-korjaus .v-services__header {
  grid-template-columns: 1fr;
}

.v-service-huolto-korjaus .v-services__title {
  font-size: clamp(26px, 2.6vw, 36px);
}

.v-service-huolto-korjaus .v-services__lead {
  font-size: 16px;
  color: rgba(13,17,23,.62);
  max-width: 640px;
}

/* ── v-card__tag + v-card__desc--sub + v-card--highlight ── */

.v-card__tag {
  display: inline-block;
  margin: 20px 24px 0;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: rgba(79,111,47,.08);
  border: 1px solid rgba(79,111,47,.14);
  color: #4F6F2F;
}

.v-card__tag--accent {
  background: rgba(29,78,216,.09);
  border-color: rgba(29,78,216,.18);
  color: #1d4ed8;
}

.v-card__desc--sub {
  font-size: 13.5px !important;
  color: rgba(13,17,23,.66) !important;
  font-style: italic;
  font-weight: 600 !important;
  margin-top: 2px !important;
  margin-bottom: 8px !important;
}

.v-card--highlight {
  box-shadow:
    inset 0 3px 0 0 rgba(29,78,216,.45),
    0 2px 8px rgba(17,24,39,.04),
    0 10px 28px rgba(17,24,39,.06);
  border-color: rgba(29,78,216,.12);
}

.v-card--highlight:hover {
  border-color: rgba(29,78,216,.22);
  box-shadow:
    inset 0 3px 0 0 rgba(29,78,216,.60),
    0 6px 18px rgba(17,24,39,.07),
    0 22px 44px rgba(17,24,39,.08);
}

/* ── Hub hero inner padding (override compact asymmetry) ── */

.v-service-huolto-korjaus .v-hero--compact {
  min-height: clamp(280px, 34vw, 400px);
}

.v-service-huolto-korjaus .v-hero--compact .v-hero__inner {
  padding-top: 52px;
  padding-bottom: 54px;
}

/* ── Hub hero inner layout (v-hero__left + v-hero__info) ── */

.v-service-huolto-korjaus .v-hero__left {
  min-width: 0;
  max-width: 680px;
}

.v-service-huolto-korjaus .v-hero__info {
  min-width: 0;
  align-self: start;
  padding: 26px 24px;
  border-radius: 20px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 16px 44px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.18);
}

.v-service-huolto-korjaus .v-hero__info h2 {
  margin: 0 0 14px;
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.22;
  letter-spacing: -.02em;
  color: rgba(255,255,255,.96);
  font-weight: 700;
}

.v-service-huolto-korjaus .v-hero__info ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.v-service-huolto-korjaus .v-hero__info li {
  font-size: 14.5px;
  line-height: 1.55;
  color: rgba(255,255,255,.84);
  padding-left: 20px;
  position: relative;
}

.v-service-huolto-korjaus .v-hero__info li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .6em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #8EA85A;
  transform: translateY(-50%);
}

.v-service-huolto-korjaus .v-hero__info strong {
  color: #fff;
  font-weight: 700;
}

/* ── Mobile ── */

@media (max-width: 820px) {

  .v-service-huolto .vsp-split,
  .v-service-paivystys .vsp-split,
  .v-service-korjausarvio .vsp-split {
    grid-template-columns: 1fr;
  }

  .v-service-huolto .vsp-split__side,
  .v-service-paivystys .vsp-split__side,
  .v-service-korjausarvio .vsp-split__side {
    padding-top: 0;
  }

  .vsp-tool__layout {
    grid-template-columns: 1fr;
  }

  .vsp-tool__sidebar {
    position: static;
  }

  .vsp-form-trust {
    grid-template-columns: 1fr;
  }

  .vsp-trust-cards {
    position: static;
  }

  .v-service-huolto-korjaus .v-hero__inner .v-wrap {
    grid-template-columns: 1fr;
  }

  .v-service-huolto-korjaus .v-hero__info {
    display: none;
  }

  .vsp-fit-grid {
    grid-template-columns: 1fr;
  }

}

/* =========================================================
   VARMEA – Hub huolto & korjaukset viimeistely
   ========================================================= */

/* ── Hub-guide CTA-nappi ── */

.v-hub-guide .v-btn {
  display: block;
  margin-top: 14px;
  width: fit-content;
  color: #fff !important;
}

/* ── Hub palvelukortit: parannettu kontrasti ── */

#hub-huolto-korjaus-palvelut .v-card__desc {
  font-size: 15px;
  color: rgba(13,17,23,.72);
}

/* ── Hub CTA tumman lohkon viimeistely ── */

#hub-huolto-korjaus-cta .v-cta__note {
  color: rgba(255,255,255,.78);
}

#hub-huolto-korjaus-cta .v-cta__form-sub {
  color: rgba(255,255,255,.82);
}

#hub-huolto-korjaus-cta .v-form-wrap .wpforms-container label {
  font-size: 14px !important;
  color: #fff !important;
  letter-spacing: -.005em;
}

#hub-huolto-korjaus-cta .v-form-wrap .wpforms-container input::placeholder,
#hub-huolto-korjaus-cta .v-form-wrap .wpforms-container textarea::placeholder {
  color: rgba(0,0,0,.36) !important;
}

#hub-huolto-korjaus-cta .v-form-wrap .wpforms-container .wpforms-sublabel,
#hub-huolto-korjaus-cta .v-form-wrap .wpforms-container .wpforms-field-description {
  color: rgba(255,255,255,.82) !important;
  font-size: 13px !important;
}

/* =========================================================
   VARMEA – WPForms confirmation (final clean version)
   ========================================================= */

.wpforms-confirmation-container-full,
.wpforms-confirmation-container {
  background: #ffffff !important;
  border: 1px solid #e3e7e5 !important;
  border-radius: 16px !important;

  padding: 20px !important;
  margin-top: 16px;

  box-shadow: 0 10px 30px rgba(0,0,0,0.04);
}

/* Title (strong tag) */
.wpforms-confirmation-container strong {
  display: block;
  font-size: 18px;
  font-weight: 600;
  color: #1f2a24;
  margin-bottom: 10px;
}

/* Text */
.wpforms-confirmation-container {
  font-size: 14px;
  color: #4a5a52;
  line-height: 1.6;
}

.wpforms-confirmation-container br + br {
  display: none;
}

.wpforms-confirmation-container {
  position: relative;
}

/* riviväli bullet-listalle */
.wpforms-confirmation-container {
  line-height: 1.7;
}

/* =========================================================
   VARMEA – Huolto / Korjausarvio / Hub: luettavuusparannukset
   ========================================================= */

/* ── Hub (14) hero: label-rivin kirkkaus ── */

.v-service-huolto-korjaus .v-hero__label {
  color: rgba(255,255,255,.78);
}

.v-service-huolto-korjaus .v-hero__tagline {
  color: rgba(255,255,255,.92);
}

/* ── Service hero stat-tekstit kirkkaammat ── */

.v-service-huolto .vsp-stat span,
.v-service-korjausarvio .vsp-stat span {
  color: rgba(255,255,255,.80);
}

/* ── Info card (hero-kortti): parempi border + tekstitiiveys ── */

.v-service-huolto .vsp-info-card,
.v-service-korjausarvio .vsp-info-card {
  border-color: rgba(31,42,68,.12);
}

.v-service-huolto .vsp-info-card p,
.v-service-korjausarvio .vsp-info-card p {
  font-size: 15px;
  color: rgba(31,42,68,.80);
}

.v-service-huolto .vsp-info-card .vsp-checks li,
.v-service-korjausarvio .vsp-info-card .vsp-checks li {
  font-size: 14.5px;
  line-height: 1.60;
}

/* ── Huolto-työkalu: parannettu luettavuus ── */

.vht-label {
  font-size: 13px;
  letter-spacing: .09em;
}

.vht-help {
  color: rgba(0,0,0,.70);
}

.vht-result__content-label {
  font-size: 12px;
}

.vht-result__list li {
  font-size: 14px;
  line-height: 1.55;
}

.vht-disclaimer {
  font-size: 14px;
  color: rgba(0,0,0,.62);
  line-height: 1.56;
}

/* =========================================================
   Visual Polish v1 — typografia · hero · CTA · lomakkeet
   ========================================================= */

/* 1. Typografiatokenit — minimi koot ja muted-kontrasti */
:root {
  --t-xs:   12px;                      /* 11 → 12 px (stat-labelit, pillietiketit) */
  --t-sm:   14px;                      /* 13.5 → 14 px (form-labelit, subtitleit) */
  --t-base: 16px;                      /* 15.5 → 16 px (body, inputit) */
  --c-muted: rgba(13,17,23,.68);       /* 0.54 → 0.68 (kaikki muted body-teksti) */
}

/* 2. Hero stat-labelit — liian haaleita (.36 / .42) */
.v-hero__stat-l {
  color: rgba(255,255,255,.62);
}
#etusivu-hero .v-hero__stat-l {
  color: rgba(255,255,255,.64);
}

/* 3. Hero glass-variantti — lead liian halea (.74) */
.v-hero--glass .v-hero__lead {
  color: rgba(255,255,255,.88);
}

/* 4. Numbers-osio — labelit ja subtekstit liian haaleita */
.v-numbers__label {
  color: rgba(255,255,255,.62);
}
.v-numbers__sub {
  color: rgba(255,255,255,.48);
}

/* 5. Yhteystiedot: lomake-paneelin subtitle (.46) ja hienokirjoitus */
.v-contact__panel--form .v-contact__sub {
  color: rgba(255,255,255,.72);
}
.v-contact__fineprint {
  color: rgba(255,255,255,.44);
}

/* 6. service-cta kappale (.72 → .84) */
.service-cta p {
  color: rgba(255,255,255,.84);
}

/* 7. vsp-stat span (.68 → .78) */
.vsp-stat span {
  color: rgba(255,255,255,.78);
}

/* 8. Lomake-placeholder — ei liian vaalea vaaleataustaisissa kentissä */
.v-form-wrap .wpforms-container input::placeholder,
.v-form-wrap .wpforms-container textarea::placeholder {
  color: rgba(0,0,0,.42) !important;
  opacity: 1 !important;
}

/* 9. Lomake-placeholder — tummataustaisessa CTA-lomakkeessa */
.v-cta .v-form-wrap .wpforms-container input::placeholder,
.v-cta .v-form-wrap .wpforms-container textarea::placeholder,
.vsp-cta__form .wpforms-container input::placeholder,
.vsp-cta__form .wpforms-container textarea::placeholder {
  color: rgba(255,255,255,.44) !important;
  opacity: 1 !important;
}

/* 10. CTA-lomakelaatikon form-sub — pieni kontrastitäsmennys */
.v-cta__form-sub {
  color: rgba(255,255,255,.88);
}

/* 11. Etusivu hero lead — hieman kirkkaampi */
#etusivu-hero .v-hero__lead {
  color: rgba(255,255,255,.90);
}

/* =========================================================
   Visual Polish v2 — kortit, spacing, buttonit, gridit
   ========================================================= */

/* 1. KORTIT — border-radius yhtenäistys
   Quote-kortit olivat var(--r-md)=14px, kaikki muut kortit ~20px */
.v-quotes__item {
  border-radius: var(--r-lg);
}

/* 2. KORTIT — sisäinen rytmi
   Benefits-title ja desc välissä pieni lisähengitys */
.v-benefits__title {
  margin-bottom: 9px;
}

/* 3. KORTIT — vsp-card title → body spacing tasapainoisempi */
.vsp-card h3 {
  margin-bottom: 8px;
}

/* 4. BULLETIT — vsp-checks double-spacing korjaus
   Grid gap:10px + li margin-bottom:8px = 18px → liian ilmava.
   Poistetaan li-margin, jätetään grid gap hoitamaan välit. */
.vsp-checks li {
  margin-bottom: 0;
}

/* 5. GRIDIT — tasaisemmat korttivälit */
.v-services__grid {
  gap: 18px;
}

.v-benefits {
  gap: 16px;
}

.v-quotes__grid {
  gap: 16px;
}

/* 6. QUOTE-TEKSTI — hieman luettavampi koko ja rivivälitys */
.v-quotes__item blockquote {
  font-size: 14.5px;
  line-height: 1.68;
}

/* 7. BUTTONIT — yhtenäinen minikorkeus kaikille .v-btn-varianteille
   Hero- ja vsp-kohtaiset ylikirjoitukset (min-height:48px, padding:0 20px jne.)
   säilyvät tarkemman selektorinsa ansiosta. */
.v-btn {
  min-height: 44px;
  padding: 13px 24px;
}

/* 8. PALVELUSIVUT — eyebrow → h2 pieni lisähengitys */
.vsp-eyebrow {
  margin-bottom: 12px;
}

/* 9. PALVELUSIVUT — section-head → korttigridi hieman reilumpi väli */
.vsp-section-head {
  margin-bottom: 36px;
}

/* 10. SERVICE-COLUMNS — lisää internal gap kortin sisäelementeille */
.service-columns .wp-block-column {
  gap: 8px;
}

/* =========================================================
   Visual Polish v3 — laskurit · lomakkeet · mobiili
   ========================================================= */

/* ── 1. LASKURIT – luettavuus ja yhteenveto ── */

/* vsp-tool: ryhmäotsikot näkyvämmiksi */
.vsp-tool__group-label {
  font-size: 12.5px;
  color: rgba(42,49,56,.64);
}

/* vsp-tool: pieni huomioteksti luettavammaksi */
.vsp-tool__note {
  line-height: 1.70;
}

.vsp-tool__note--small {
  font-size: 13px;
  color: rgba(42,49,56,.64);
  line-height: 1.58;
}

/* vsp-tool: result-kortti hieman enemmän tilaa */
.vsp-tool__result {
  padding: 28px;
}

/* vsp-tool: hintasuffiksi selkeämpi */
.vsp-tool__price-hi {
  color: rgba(31,42,68,.62);
}

/* vht: eyebrow — yhden pikselin nosto */
.vht-result__eyebrow {
  font-size: 11.5px;
}

/* vht: note-teksti kirkkaampi ja hengittää */
.vht-result__note {
  font-size: 14px;
  line-height: 1.70;
  color: rgba(42,49,56,.74);
}

/* vht: result-box label parempi kontrasti */
.vht-result__content-label {
  color: rgba(42,49,56,.64);
}

/* vht: result-box taustaväri selkeämpi */
.vht-result__content {
  background: rgba(255,255,255,.76);
}

/* vht: disclaimer — ei liian halea */
.vht-result__disclaimer {
  color: rgba(42,49,56,.60);
  line-height: 1.58;
}

/* vht: yhteenveto-palkki — koko ja kontrasti */
.vht-summary-bar {
  font-size: 14px;
}

.vht-summary__key {
  font-size: 11.5px;
  color: rgba(42,49,56,.62);
}

.vht-summary__text {
  color: rgba(42,49,56,.80);
}

/* IVLP: lomakekenttien gap ja label-kontrasti */
.ivlp-estimate-block #ivlpFormWrap .wpforms-field-container {
  gap: 16px 20px;
}

.ivlp-estimate-block #ivlpFormWrap .wpforms-container label {
  color: rgba(22,32,43,.88) !important;
  margin-bottom: 7px !important;
  line-height: 1.4 !important;
}

/* ── 2. LOMAKKEET – placeholder · avustavat · CTA ── */

/* IVLP: placeholder ei liian vaalea */
.ivlp-estimate-block #ivlpFormWrap .wpforms-container input::placeholder,
.ivlp-estimate-block #ivlpFormWrap .wpforms-container textarea::placeholder {
  color: rgba(0,0,0,.38) !important;
  opacity: 1 !important;
}

/* IVLP: sublabelit ja field-descriptions */
.ivlp-estimate-block #ivlpFormWrap .wpforms-container .wpforms-sublabel,
.ivlp-estimate-block #ivlpFormWrap .wpforms-container .wpforms-field-description {
  font-size: 13px !important;
  color: rgba(22,32,43,.62) !important;
  line-height: 1.52 !important;
  margin-top: 5px !important;
}

/* Korjausarvio: placeholder */
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container input::placeholder,
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container textarea::placeholder {
  color: rgba(31,42,68,.38) !important;
  opacity: 1 !important;
}

/* Korjausarvio: sublabelit ja field-descriptions */
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container .wpforms-sublabel,
.v-service-korjausarvio #korjausarvio-lomake .wpforms-container .wpforms-field-description {
  font-size: 13px !important;
  color: rgba(36,48,65,.60) !important;
  line-height: 1.52 !important;
  margin-top: 5px !important;
}

/* Huolto / päivystys: placeholder */
.v-service-huolto .v-form-wrap .wpforms-container input::placeholder,
.v-service-huolto .v-form-wrap .wpforms-container textarea::placeholder,
.v-service-paivystys .v-form-wrap .wpforms-container input::placeholder,
.v-service-paivystys .v-form-wrap .wpforms-container textarea::placeholder {
  color: rgba(0,0,0,.38) !important;
  opacity: 1 !important;
}

/* Vaaleataustaiset lomakkeet: avustavat tekstit */
.v-form-wrap--light .wpforms-container .wpforms-sublabel,
.v-form-wrap--light .wpforms-container .wpforms-field-description {
  font-size: 13px !important;
  color: rgba(13,17,23,.58) !important;
  line-height: 1.52 !important;
}

/* CTA-lomake (tummatausta): avustavat tekstit */
.vsp-cta__form .wpforms-container .wpforms-sublabel,
.vsp-cta__form .wpforms-container .wpforms-field-description {
  font-size: 13px !important;
  color: rgba(255,255,255,.68) !important;
  line-height: 1.52 !important;
}

/* CTA-lomake: submit erottuu selkeästi */
.vsp-cta__form .wpforms-container .wpforms-submit {
  min-height: 52px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: -.01em !important;
  box-shadow: 0 8px 22px rgba(79,111,47,.24) !important;
}

/* ── 3. MOBIILI – overflow · koot · kortit · CTA ── */

@media (max-width: 640px) {

  /* vsp-tool: suurempi touch-alue pill-tageille */
  .vsp-tool__opt {
    padding: 10px 16px;
    font-size: 14.5px;
  }

  /* vsp-tool: group-label riittävän iso */
  .vsp-tool__group-label {
    font-size: 13px;
  }

  /* vsp-tool: result-kortti tiiviimpi */
  .vsp-tool__result {
    padding: 22px 20px;
  }

  /* vht-card: kompaktimpi padding pienillä ruuduilla */
  .vht-card__selects {
    padding: 24px 20px;
    gap: 20px;
  }

  .vht-card__result {
    padding: 24px 20px;
  }

  /* vht: yhteenveto-palkki: rivitetään pystyyn */
  .vht-summary-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 14px 16px;
  }

  /* Korjausarvio lomake: täyte pienemmäksi */
  .v-service-korjausarvio #korjausarvio-lomake .wpforms-container {
    padding: 18px 16px 18px !important;
  }

  /* Trust-kortit: hieman tiiviimpi */
  .vsp-trust-cards {
    gap: 10px;
  }

  .vsp-trust-card {
    padding: 14px 14px;
  }

  /* CTA-napit: aina täysleveitä */
  .vsp-cta__form .wpforms-container .wpforms-submit,
  .ivlp-estimate-block #ivlpFormWrap .wpforms-container .wpforms-submit {
    width: 100% !important;
  }

}

@media (max-width: 480px) {

  /* iOS ei zoomaa kun font-size >= 16px */
  .ivlp-estimate-block #ivlpFormWrap .wpforms-container input[type="text"],
  .ivlp-estimate-block #ivlpFormWrap .wpforms-container input[type="tel"],
  .ivlp-estimate-block #ivlpFormWrap .wpforms-container input[type="email"],
  .ivlp-estimate-block #ivlpFormWrap .wpforms-container select,
  .ivlp-estimate-block #ivlpFormWrap .wpforms-container textarea {
    font-size: 16px !important;
  }

  .v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="text"],
  .v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="tel"],
  .v-service-korjausarvio #korjausarvio-lomake .wpforms-container input[type="email"],
  .v-service-korjausarvio #korjausarvio-lomake .wpforms-container select,
  .v-service-korjausarvio #korjausarvio-lomake .wpforms-container textarea {
    font-size: 16px !important;
  }

  .v-form-wrap .wpforms-container input[type="text"],
  .v-form-wrap .wpforms-container input[type="tel"],
  .v-form-wrap .wpforms-container input[type="email"],
  .v-form-wrap .wpforms-container select,
  .v-form-wrap .wpforms-container textarea {
    font-size: 16px !important;
  }

  /* CTA-napit selkeästi näkyviä ilman zoomausta */
  .v-btn,
  .vsp-btn--lg {
    min-height: 52px;
    font-size: 1rem;
  }

  /* vsp-tool: pieni huomioteksti */
  .vsp-tool__note--small {
    font-size: 13px;
  }

  /* vht disclaimer */
  .vht-result__disclaimer {
    font-size: 12px;
  }

}

/* ── 4. FINAL CLEANUP – haaleimmat tekstit · spacing ── */

/* vsp-phone-cta note: kirkkaampi */
.vsp-phone-cta__note {
  font-size: 14.5px;
  color: rgba(58,58,58,.74);
}

/* Section-head body: viimeinen kontrastitasaus */
.vsp-section-head p {
  color: rgba(42,49,56,.74);
}

/* Hub palvelukortit: hieman enemmän kontrasti */
#hub-huolto-korjaus-palvelut .v-card__desc {
  color: rgba(13,17,23,.76);
}

/* Hub CTA note / form-sub: paremmin näkyvissä */
#hub-huolto-korjaus-cta .v-cta__note {
  color: rgba(255,255,255,.82);
}

/* vsp-eyebrow → h2 rytmitys */
.vsp-section-head .vsp-eyebrow {
  margin-bottom: 10px;
}

/* vht-card: medium-screen padding tasapainoisempi */
@media (max-width: 900px) {
  .vht-card__selects {
    gap: 22px;
    padding: 28px 28px;
  }

  .vht-card__result {
    padding: 28px 28px;
  }
}

/* =========================================================
   MOBILE VIIMEISTELY — 2026-04
   Koko sivuston mobiilioptimointikorjaukset
   ========================================================= */

/* 1. LUOTTAMUS-OSIO: yhden sarakkeen grid mobiilissa
   Ilman tätä grid pysyy 2-sarakkeisena koko mobiilileveydellä
   mikä tekee liitteistä (~167px leveitä) ahtaita. */
@media (max-width: 767px) {
  .v-trust__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .v-trust__item:nth-child(odd),
  .v-trust__item:nth-child(even) {
    padding-right: 0;
    padding-left: 0;
    border-right: none;
  }
  .v-trust__name {
    font-size: 15px;
    line-height: 1.35;
  }
  .v-trust__desc {
    font-size: 14px;
    line-height: 1.58;
  }
}

/* 2. PROSESSIASKELEET: yksi sarake pienillä ruuduilla
   4→2 sarake tapahtuu jo 1024px:ssä. Tässä 2→1 alle 600px. */
@media (max-width: 600px) {
  .v-steps--process .v-steps__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .v-steps--process .v-step__num::after {
    display: none;
  }
  /* Palvelusivujen 2-col steps grid → 1 col */
  .v-steps--grid {
    grid-template-columns: 1fr;
  }
}

/* 3. HUOLTO / PAIVYSTYS / KORJAUSARVIO — hero padding alas mobiilissa
   Desktop: padding: 80px 0 0 — liian suuri mobiilissa. */
@media (max-width: 900px) {
  .v-service-huolto .vsp-hero,
  .v-service-paivystys .vsp-hero,
  .v-service-korjausarvio .vsp-hero {
    padding-top: 52px;
  }
}
@media (max-width: 767px) {
  .v-service-huolto .vsp-hero,
  .v-service-paivystys .vsp-hero,
  .v-service-korjausarvio .vsp-hero {
    padding-top: 38px;
  }
}

/* 4. FAQ: paremmat klikkausalueet mobiilissa */
@media (max-width: 767px) {
  .v-faq__item {
    padding: 20px 0;
  }
  .v-faq__item summary {
    font-size: 15px;
    line-height: 1.45;
    padding-right: 4px;
  }
  .v-faq__answer {
    max-width: none;
  }
}

/* 5. CTA-LOMAKE: tiiviimpi padding mobiilissa
   Huolto / päivystys / korjausarvio */
@media (max-width: 600px) {
  .v-service-huolto .vsp-cta__form,
  .v-service-paivystys .vsp-cta__form,
  .v-service-korjausarvio .vsp-cta__form,
  .v-service-huolto-korjaus .vsp-cta__form {
    padding: 20px 16px;
    border-radius: 16px;
  }
}

/* 6. VSP-SECTION SPACING: tiiviimpi pienillä ruuduilla */
@media (max-width: 600px) {
  .vsp-section {
    padding: 48px 0;
  }
  .v-service-huolto .vsp-section,
  .v-service-paivystys .vsp-section,
  .v-service-korjausarvio .vsp-section {
    padding: 48px 0;
  }
}

/* 7. HERO STATS — erittäin pienet ruudut (360px)
   white-space: nowrap voi ylivuotaa kapeilla ruuduilla */
@media (max-width: 380px) {
  .v-hero__stats--below .v-hero__stat-n {
    font-size: .82rem !important;
    letter-spacing: 0 !important;
  }
  .v-hero__stats--below .v-hero__stat-l {
    font-size: .55rem !important;
  }
}

/* 8. V-BTNS (CTA-painikeryhmä) — venyttää mobiilissa täysleveäksi
   Etusivun ja hub-sivujen ghost-painike selkeämmin klikattava */
@media (max-width: 600px) {
  .v-cta__text .v-btns {
    flex-direction: column;
  }
  .v-cta__text .v-btns .v-btn {
    width: 100%;
    justify-content: center;
  }
}

/* 9. VESIVUOTOVAHTI BUILDER — yhden sarakkeen layout mobiilissa */
@media (max-width: 700px) {
  .vwg-builder__shell {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .vwg-builder__summary {
    order: -1;
  }
}

/* 10. V-HERO KOMPAKTI: etusivun herossa ensinäkymä napakampi */
@media (max-width: 480px) {
  #etusivu-hero .v-hero__inner {
    gap: 10px !important;
  }
  #etusivu-hero .v-hero__label {
    margin-bottom: 8px !important;
  }
}
