{"id":59569,"date":"2026-02-09T16:50:33","date_gmt":"2026-02-09T14:50:33","guid":{"rendered":"https:\/\/melior.ee\/protseduuri-valimine\/"},"modified":"2026-10-30T22:56:48","modified_gmt":"2026-10-30T20:56:48","slug":"hoidon-valinta","status":"publish","type":"page","link":"https:\/\/melior.ee\/fi\/hoidon-valinta\/","title":{"rendered":"1 minuutin diagnostiikka"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"59569\" class=\"elementor elementor-59569 elementor-48495\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec9925e e-con-full e-flex e-con e-parent\" data-id=\"ec9925e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4001eba elementor-widget elementor-widget-html\" data-id=\"4001eba\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!doctype html>\r\n<html lang=\"fi\">\r\n<head>\r\n  <meta charset=\"utf-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\r\n  <title>Melior Clinics \u2014 Kauneustesti<\/title>\r\n  <meta name=\"description\" content=\"Selvit\u00e4 1 minuutissa, mitk\u00e4 Meliorin hoidot sopivat juuri sinulle. Kauneustesti, josta saat henkil\u00f6kohtaisen suosituksen ja bonuksen.\" \/>\r\n\r\n  <style>\r\n    :root {\r\n      --bg-color: #f4f6f5;\r\n      --text-main: #2c2a26;\r\n      --text-muted: #6b6965;\r\n      --primary: #abb087;\r\n      --primary-dark: #929770;\r\n      --success: #6ba883;\r\n      --surface: #ffffff;\r\n      --primary-soft: rgba(171, 176, 135, 0.16);\r\n      --container-width: 1440px;\r\n      --radius-lg: 24px;\r\n      --radius-md: 16px;\r\n      --shadow-soft: 0 20px 40px rgba(171, 176, 135, 0.15);\r\n      --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.03);\r\n    }\r\n\r\n    *, *::before, *::after { box-sizing: border-box; }\r\n    html, body { overflow-x: hidden; }\r\n\r\n    body {\r\n      margin: 0;\r\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n      background-color: var(--bg-color);\r\n      background-image:\r\n        radial-gradient(circle at 10% 20%, rgba(171, 176, 135, 0.16) 0%, transparent 45%),\r\n        radial-gradient(circle at 90% 80%, rgba(171, 176, 135, 0.10) 0%, transparent 45%);\r\n      color: var(--text-main);\r\n      line-height: 1.6;\r\n      -webkit-font-smoothing: antialiased;\r\n    }\r\n\r\n    a { text-decoration: none; color: inherit; transition: 0.2s; }\r\n    ul { list-style: none; padding: 0; margin: 0; }\r\n\r\n    h1, h2, h3 { margin: 0; font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; }\r\n    h1 { font-size: clamp(34px, 5vw, 54px); margin-bottom: 16px; }\r\n    h2 { font-size: clamp(24px, 4vw, 32px); margin-bottom: 16px; }\r\n    p { margin: 0 0 16px; color: var(--text-muted); font-size: 16px; }\r\n\r\n    .container {\r\n      width: 100%;\r\n      max-width: var(--container-width);\r\n      margin: 0 auto;\r\n      padding: 0 24px;\r\n    }\r\n\r\n    section { padding: 60px 0; }\r\n    @media (max-width: 768px) { section { padding: 44px 0; } }\r\n\r\n    .glass-panel {\r\n      background: rgba(255, 255, 255, 0.72);\r\n      backdrop-filter: blur(12px);\r\n      -webkit-backdrop-filter: blur(12px);\r\n      border: 1px solid rgba(255, 255, 255, 0.85);\r\n      border-radius: var(--radius-lg);\r\n      box-shadow: var(--shadow-soft);\r\n    }\r\n\r\n    .btn {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      text-align: center;\r\n      padding: 16px 32px;\r\n      border-radius: 14px;\r\n      font-weight: 650;\r\n      font-size: 16px;\r\n      cursor: pointer;\r\n      transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s;\r\n      border: none;\r\n    }\r\n\r\n    .btn-primary {\r\n      background: var(--primary);\r\n      color: #fff;\r\n      box-shadow: 0 14px 28px rgba(171, 176, 135, 0.32);\r\n    }\r\n    .btn-primary:hover {\r\n      background: var(--primary-dark);\r\n      transform: translateY(-2px);\r\n      box-shadow: 0 18px 40px rgba(171, 176, 135, 0.42);\r\n    }\r\n\r\n    .hero {\r\n      padding-top: 26px;\r\n      padding-bottom: 64px;\r\n      position: relative;\r\n      overflow: hidden;\r\n    }\r\n    .hero::before {\r\n      content: \"\";\r\n      position: absolute;\r\n      inset: -120px -120px auto -120px;\r\n      height: 420px;\r\n      background:\r\n        radial-gradient(circle at 30% 40%, rgba(171,176,135,0.22), transparent 55%),\r\n        radial-gradient(circle at 70% 50%, rgba(171,176,135,0.14), transparent 60%);\r\n      filter: blur(4px);\r\n      pointer-events: none;\r\n    }\r\n    .hero::after {\r\n      content: \"\";\r\n      position: absolute;\r\n      right: -120px;\r\n      bottom: -160px;\r\n      width: 420px;\r\n      height: 420px;\r\n      background: radial-gradient(circle at 35% 35%, rgba(171,176,135,0.20), transparent 60%);\r\n      filter: blur(10px);\r\n      pointer-events: none;\r\n    }\r\n\r\n    .hero-wrap {\r\n      padding: 56px 44px;\r\n      position: relative;\r\n      overflow: hidden;\r\n    }\r\n    .hero-wrap::after {\r\n      content: \"\";\r\n      position: absolute;\r\n      inset: 0;\r\n      background: linear-gradient(135deg, rgba(171,176,135,0.08), rgba(255,255,255,0) 55%);\r\n      pointer-events: none;\r\n    }\r\n\r\n    .hero-grid {\r\n      display: grid;\r\n      grid-template-columns: 1.15fr 0.85fr;\r\n      gap: 40px;\r\n      align-items: center;\r\n      position: relative;\r\n      z-index: 1;\r\n    }\r\n    @media (max-width: 980px) {\r\n      .hero-wrap { padding: 44px 22px; }\r\n      .hero-grid { grid-template-columns: 1fr; gap: 26px; }\r\n    }\r\n\r\n    .hero-lead {\r\n      font-size: 18px;\r\n      color: rgba(44,42,38,0.72);\r\n      margin-bottom: 16px;\r\n    }\r\n\r\n    .hero-support {\r\n      display: inline-flex;\r\n      gap: 10px;\r\n      align-items: center;\r\n      padding: 10px 14px;\r\n      border-radius: 999px;\r\n      background: rgba(44,42,38,0.04);\r\n      border: 1px solid rgba(44,42,38,0.06);\r\n      color: rgba(44,42,38,0.75);\r\n      font-size: 14px;\r\n      font-weight: 650;\r\n      margin-bottom: 22px;\r\n    }\r\n    .hero-support::before {\r\n      content: \"\u2713\";\r\n      display: inline-grid;\r\n      place-items: center;\r\n      width: 22px;\r\n      height: 22px;\r\n      border-radius: 999px;\r\n      background: var(--primary-soft);\r\n      color: #4e523a;\r\n      font-weight: 900;\r\n    }\r\n\r\n    .hl {\r\n      background: linear-gradient(180deg, rgba(171,176,135,0) 55%, rgba(171,176,135,0.22) 55%);\r\n      border-radius: 10px;\r\n      padding: 0 6px;\r\n    }\r\n\r\n    .hero-actions {\r\n      display: flex;\r\n      gap: 12px;\r\n      flex-wrap: wrap;\r\n      align-items: center;\r\n      margin-top: 8px;\r\n    }\r\n\r\n    .hero-micro {\r\n      margin-top: 14px;\r\n      font-size: 13px;\r\n      color: rgba(44,42,38,0.55);\r\n      display: flex;\r\n      gap: 10px;\r\n      flex-wrap: wrap;\r\n      align-items: center;\r\n    }\r\n    .hero-micro span {\r\n      display: inline-flex;\r\n      gap: 6px;\r\n      align-items: center;\r\n      padding: 6px 10px;\r\n      border-radius: 999px;\r\n      background: rgba(255,255,255,0.65);\r\n      border: 1px solid rgba(44,42,38,0.06);\r\n    }\r\n\r\n    .hero-points {\r\n      margin-top: 18px;\r\n      display: grid;\r\n      grid-template-columns: repeat(3, minmax(0,1fr));\r\n      gap: 10px;\r\n    }\r\n    @media (max-width: 640px) { .hero-points { grid-template-columns: 1fr; } }\r\n\r\n    .hero-point {\r\n      border: 1px solid rgba(44,42,38,0.06);\r\n      background: rgba(255,255,255,0.65);\r\n      border-radius: 14px;\r\n      padding: 12px 12px;\r\n      display: flex;\r\n      gap: 10px;\r\n      align-items: flex-start;\r\n    }\r\n    .hero-point b { display: block; font-size: 13px; color: rgba(44,42,38,0.8); margin-bottom: 2px; }\r\n    .hero-point small { display: block; font-size: 12px; color: rgba(44,42,38,0.55); line-height: 1.35; }\r\n\r\n    .hero-dot {\r\n      width: 36px;\r\n      height: 36px;\r\n      border-radius: 12px;\r\n      background: var(--primary-soft);\r\n      display: grid;\r\n      place-items: center;\r\n      color: #4e523a;\r\n      font-weight: 900;\r\n      flex: 0 0 auto;\r\n    }\r\n\r\n    .hero-visual-card {\r\n      position: relative;\r\n      border-radius: 22px;\r\n      background: rgba(255,255,255,0.78);\r\n      border: 1px solid rgba(44,42,38,0.06);\r\n      box-shadow: 0 18px 40px rgba(0,0,0,0.06);\r\n      overflow: hidden;\r\n      aspect-ratio: 3 \/ 4;\r\n      max-width: 430px;\r\n      margin-left: auto;\r\n    }\r\n    .hero-visual-card::before {\r\n      content: \"\";\r\n      position: absolute;\r\n      inset: 0;\r\n      background:\r\n        radial-gradient(circle at 25% 18%, rgba(171,176,135,0.20), transparent 42%),\r\n        linear-gradient(180deg, rgba(255,255,255,0.0), rgba(171,176,135,0.08));\r\n      pointer-events: none;\r\n      z-index: 1;\r\n    }\r\n    .hero-visual-card img {\r\n      width: 100%;\r\n      height: 100%;\r\n      display: block;\r\n      object-fit: cover;\r\n      object-position: center top;\r\n      background: #fff;\r\n    }\r\n    .hero-visual-note {\r\n      position: absolute;\r\n      left: 16px;\r\n      right: 16px;\r\n      bottom: 16px;\r\n      z-index: 2;\r\n      border-radius: 16px;\r\n      padding: 12px 14px;\r\n      background: rgba(255,255,255,0.82);\r\n      border: 1px solid rgba(44,42,38,0.08);\r\n      backdrop-filter: blur(10px);\r\n      color: rgba(44,42,38,0.78);\r\n      font-size: 13px;\r\n      font-weight: 650;\r\n    }\r\n    @media (max-width: 980px) {\r\n      .hero-visual-card { margin: 0 auto; }\r\n    }\r\n\r\n    @media (min-width: 981px) {\r\n      .hero-visual-card {\r\n        transform: translateY(6px);\r\n        animation: floaty 5.5s ease-in-out infinite;\r\n      }\r\n      @keyframes floaty {\r\n        0%,100% { transform: translateY(6px); }\r\n        50% { transform: translateY(-6px); }\r\n      }\r\n    }\r\n\r\n\r\n    .hero-bonus-badge {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      padding: 10px 14px;\r\n      border-radius: 999px;\r\n      background: rgba(171, 176, 135, 0.16);\r\n      border: 1px solid rgba(171, 176, 135, 0.26);\r\n      color: #5f653f;\r\n      font-size: 14px;\r\n      font-weight: 800;\r\n      margin: 0 0 22px;\r\n      box-shadow: 0 10px 22px rgba(171, 176, 135, 0.12);\r\n    }\r\n\r\n    .ba-carousel {\r\n      position: relative;\r\n      max-width: 500px;\r\n      margin-left: auto;\r\n      padding: 18px;\r\n      border-radius: 24px;\r\n      background: rgba(255,255,255,0.82);\r\n      border: 1px solid rgba(44,42,38,0.07);\r\n      box-shadow: 0 18px 40px rgba(0,0,0,0.06);\r\n      overflow: hidden;\r\n      isolation: isolate;\r\n    }\r\n    .ba-carousel::before {\r\n      content: \"\";\r\n      position: absolute;\r\n      inset: -90px -70px auto -70px;\r\n      height: 220px;\r\n      background: radial-gradient(circle at 50% 40%, rgba(171,176,135,0.22), transparent 62%);\r\n      pointer-events: none;\r\n      z-index: -1;\r\n    }\r\n    .ba-head {\r\n      margin-bottom: 14px;\r\n      text-align: left;\r\n    }\r\n    .ba-kicker {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      padding: 6px 10px;\r\n      border-radius: 999px;\r\n      background: rgba(171,176,135,0.14);\r\n      color: #5f653f;\r\n      font-size: 12px;\r\n      font-weight: 900;\r\n      letter-spacing: .08em;\r\n      text-transform: uppercase;\r\n      margin-bottom: 10px;\r\n    }\r\n    .ba-head h2 {\r\n      font-size: clamp(22px, 3vw, 30px);\r\n      margin-bottom: 6px;\r\n      color: var(--text-main);\r\n    }\r\n    .ba-head p {\r\n      margin: 0;\r\n      font-size: 14px;\r\n      color: rgba(44,42,38,0.62);\r\n    }\r\n    .ba-stage {\r\n      position: relative;\r\n      border-radius: 18px;\r\n      overflow: hidden;\r\n      background: #fff;\r\n      border: 1px solid rgba(44,42,38,0.08);\r\n      box-shadow: 0 12px 28px rgba(0,0,0,0.06);\r\n    }\r\n    .ba-image-btn {\r\n      display: block;\r\n      position: relative;\r\n      width: 100%;\r\n      padding: 0;\r\n      border: 0;\r\n      background: #fff;\r\n      cursor: zoom-in;\r\n      overflow: hidden;\r\n    }\r\n    .ba-image {\r\n      display: block;\r\n      width: 100%;\r\n      aspect-ratio: 1 \/ 1;\r\n      object-fit: cover;\r\n      background: #fff;\r\n      transform: scale(1.001);\r\n      transition: transform .35s ease, opacity .2s ease;\r\n    }\r\n    .ba-image-btn:hover .ba-image {\r\n      transform: scale(1.035);\r\n    }\r\n    .ba-zoom {\r\n      position: absolute;\r\n      right: 12px;\r\n      bottom: 12px;\r\n      z-index: 2;\r\n      padding: 8px 12px;\r\n      border-radius: 999px;\r\n      background: rgba(255,255,255,0.88);\r\n      border: 1px solid rgba(44,42,38,0.08);\r\n      color: rgba(44,42,38,0.72);\r\n      font-size: 12px;\r\n      font-weight: 800;\r\n      backdrop-filter: blur(10px);\r\n    }\r\n    .ba-nav {\r\n      position: absolute;\r\n      top: 50%;\r\n      z-index: 3;\r\n      width: 38px;\r\n      height: 38px;\r\n      border: 0;\r\n      border-radius: 999px;\r\n      transform: translateY(-50%);\r\n      background: rgba(255,255,255,0.90);\r\n      color: #5f653f;\r\n      font-size: 30px;\r\n      line-height: 1;\r\n      cursor: pointer;\r\n      box-shadow: 0 10px 24px rgba(0,0,0,0.12);\r\n      transition: transform .2s ease, background .2s ease;\r\n    }\r\n    .ba-nav:hover {\r\n      background: #fff;\r\n      transform: translateY(-50%) scale(1.06);\r\n    }\r\n    .ba-prev { left: 10px; }\r\n    .ba-next { right: 10px; }\r\n    .ba-copy {\r\n      padding: 14px 4px 4px;\r\n    }\r\n    .ba-title {\r\n      font-size: 18px;\r\n      line-height: 1.2;\r\n      margin-bottom: 10px;\r\n      color: var(--text-main);\r\n    }\r\n    .ba-facts {\r\n      display: grid;\r\n      gap: 7px;\r\n      font-size: 13px;\r\n      line-height: 1.35;\r\n      color: rgba(44,42,38,0.72);\r\n    }\r\n    .ba-facts b {\r\n      color: #5f653f;\r\n      font-weight: 900;\r\n    }\r\n    .ba-bottom {\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: space-between;\r\n      gap: 12px;\r\n      margin-top: 14px;\r\n    }\r\n    .ba-count {\r\n      font-size: 12px;\r\n      color: rgba(44,42,38,0.50);\r\n      font-weight: 800;\r\n    }\r\n    .ba-dots {\r\n      display: flex;\r\n      gap: 7px;\r\n      flex-wrap: wrap;\r\n      justify-content: flex-end;\r\n    }\r\n    .ba-dot {\r\n      width: 9px;\r\n      height: 9px;\r\n      border-radius: 999px;\r\n      border: 0;\r\n      background: rgba(44,42,38,0.16);\r\n      cursor: pointer;\r\n      padding: 0;\r\n      transition: width .2s ease, background .2s ease;\r\n    }\r\n    .ba-dot.is-active {\r\n      width: 24px;\r\n      background: var(--primary);\r\n    }\r\n\r\n    .ba-lightbox {\r\n      position: fixed;\r\n      inset: 0;\r\n      z-index: 1000000;\r\n      display: none;\r\n      align-items: center;\r\n      justify-content: center;\r\n      padding: 18px;\r\n      background: rgba(44,42,38,0.72);\r\n      backdrop-filter: blur(6px);\r\n    }\r\n    .ba-lightbox.is-open { display: flex; }\r\n    .ba-lightbox-card {\r\n      position: relative;\r\n      width: min(100%, 980px);\r\n      max-height: 92vh;\r\n      display: grid;\r\n      grid-template-columns: 1.05fr .95fr;\r\n      background: #fff;\r\n      border-radius: 22px;\r\n      overflow: hidden;\r\n      box-shadow: 0 30px 80px rgba(0,0,0,0.28);\r\n    }\r\n    .ba-lightbox-media {\r\n      background: #f8f8f5;\r\n      display: grid;\r\n      place-items: center;\r\n      min-height: 300px;\r\n    }\r\n    .ba-lightbox-media img {\r\n      width: 100%;\r\n      height: 100%;\r\n      max-height: 92vh;\r\n      object-fit: contain;\r\n      background: #fff;\r\n    }\r\n    .ba-lightbox-copy {\r\n      padding: 30px;\r\n      overflow: auto;\r\n    }\r\n    .ba-lightbox-copy h3 {\r\n      font-size: clamp(24px, 3vw, 34px);\r\n      margin-bottom: 18px;\r\n    }\r\n    .ba-lightbox-copy p {\r\n      margin-bottom: 12px;\r\n      font-size: 16px;\r\n    }\r\n    .ba-lightbox-copy b {\r\n      color: #5f653f;\r\n    }\r\n    .ba-lightbox-close,\r\n    .ba-lightbox-prev,\r\n    .ba-lightbox-next {\r\n      position: absolute;\r\n      z-index: 4;\r\n      border: 0;\r\n      cursor: pointer;\r\n      background: rgba(255,255,255,0.92);\r\n      color: #4d5038;\r\n      box-shadow: 0 10px 28px rgba(0,0,0,0.16);\r\n    }\r\n    .ba-lightbox-close {\r\n      top: 14px;\r\n      right: 14px;\r\n      width: 42px;\r\n      height: 42px;\r\n      border-radius: 999px;\r\n      font-size: 30px;\r\n      line-height: 1;\r\n    }\r\n    .ba-lightbox-prev,\r\n    .ba-lightbox-next {\r\n      top: 50%;\r\n      width: 44px;\r\n      height: 44px;\r\n      border-radius: 999px;\r\n      transform: translateY(-50%);\r\n      font-size: 34px;\r\n      line-height: 1;\r\n    }\r\n    .ba-lightbox-prev { left: 14px; }\r\n    .ba-lightbox-next { right: 14px; }\r\n\r\n    @media (max-width: 980px) {\r\n      .ba-carousel { margin: 0 auto; }\r\n    }\r\n    @media (max-width: 760px) {\r\n      .ba-lightbox-card {\r\n        grid-template-columns: 1fr;\r\n        overflow: auto;\r\n      }\r\n      .ba-lightbox-media img {\r\n        max-height: 55vh;\r\n      }\r\n      .ba-lightbox-copy {\r\n        padding: 22px;\r\n      }\r\n    }\r\n    @media (max-width: 480px) {\r\n      .hero-bonus-badge {\r\n        width: 100%;\r\n        align-items: flex-start;\r\n        border-radius: 16px;\r\n      }\r\n      .ba-carousel {\r\n        padding: 14px;\r\n        border-radius: 20px;\r\n      }\r\n      .ba-nav {\r\n        width: 34px;\r\n        height: 34px;\r\n        font-size: 26px;\r\n      }\r\n    }\r\n\r\n    .cards-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\r\n      gap: 24px;\r\n    }\r\n    .info-card {\r\n      background: var(--surface);\r\n      padding: 32px;\r\n      border-radius: var(--radius-md);\r\n      box-shadow: var(--shadow-card);\r\n      border: 1px solid rgba(0,0,0,0.02);\r\n    }\r\n    .icon-box {\r\n      width: 48px;\r\n      height: 48px;\r\n      border-radius: 12px;\r\n      background: rgba(171, 176, 135, 0.15);\r\n      color: var(--primary-dark);\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      font-size: 20px;\r\n      font-weight: bold;\r\n      margin-bottom: 20px;\r\n    }\r\n\r\n    .comparison-grid {\r\n      display: grid;\r\n      grid-template-columns: 1fr 1fr;\r\n      gap: 32px;\r\n      margin-top: 40px;\r\n    }\r\n    @media (max-width: 768px) { .comparison-grid { grid-template-columns: 1fr; gap: 20px; } }\r\n\r\n    .compare-col h3 { margin-bottom: 20px; font-size: 20px; display: flex; align-items: center; gap: 10px; }\r\n    .compare-list li {\r\n      position: relative;\r\n      padding-left: 30px;\r\n      margin-bottom: 14px;\r\n      color: var(--text-muted);\r\n    }\r\n    .compare-list li::before {\r\n      content: \"\";\r\n      position: absolute;\r\n      left: 0;\r\n      top: 8px;\r\n      width: 18px;\r\n      height: 18px;\r\n      background-size: contain;\r\n      background-repeat: no-repeat;\r\n    }\r\n    .list-good li::before {\r\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%236ba883'%3E%3Cpath d='M10 15.172l9.192-9.193 1.415 1.414L10 18l-6.364-6.364 1.414-1.414z'\/%3E%3C\/svg%3E\");\r\n    }\r\n    .list-bad li::before {\r\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23b08787'%3E%3Cpath d='M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95 1.414-1.414z'\/%3E%3C\/svg%3E\");\r\n    }\r\n\r\n    .cta-box {\r\n      background: linear-gradient(135deg, #fdfbf7 0%, #f4f6f5 100%);\r\n      border: 1px solid #e0e0e0;\r\n      text-align: center;\r\n      padding: 60px 24px;\r\n      border-radius: var(--radius-lg);\r\n    }\r\n\r\n    .footer {\r\n      text-align: center;\r\n      padding: 40px 0;\r\n      color: rgba(0,0,0,0.4);\r\n      font-size: 13px;\r\n    }\r\n\r\n    @media (max-width: 480px) {\r\n      .container { padding: 0 16px; }\r\n      .hero-wrap { padding: 32px 16px; }\r\n      .hero-actions { flex-direction: column; width: 100%; align-items: stretch; }\r\n      .hero-actions .btn { width: 100%; }\r\n      .cta-box { padding: 40px 16px; }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n\r\n<body>\r\n\r\n  <section class=\"hero\">\r\n    <div class=\"container\">\r\n      <div class=\"glass-panel hero-wrap\">\r\n        <div class=\"hero-grid\">\r\n\r\n          <div>\r\n            <h1>Selvit\u00e4 1 minuutissa, mitk\u00e4 hoidot <span class=\"hl\">sopivat juuri sinulle<\/span><\/h1>\r\n            <p class=\"hero-lead\">Vastaa muutamaan kysymykseen, niin saat henkil\u00f6kohtaisen suosituksen siit\u00e4, mill\u00e4 hoidoilla sinun kannattaa aloittaa tavoitteidesi ja ihosi kunnon perusteella.<\/p>\r\n            <div class=\"hero-support\">Ilman sattumanvaraisia hoitoja ja turhia kuluja<\/div>\r\n            <div class=\"hero-bonus-badge\">\ud83c\udf81 Bonuksena testin j\u00e4lkeen \u2013 maksuton diagnostiikka<\/div>\r\n\r\n            <div class=\"hero-actions\">\r\n              <button class=\"btn btn-primary\" data-melior-quiz-open type=\"button\">Aloita testi<\/button>\r\n            <\/div>\r\n\r\n            <div class=\"hero-micro\">\r\n              <span>\u23f1 Vie ~1 minuutin<\/span>\r\n              <span>\ud83d\udd12 Ilman rekister\u00f6itymist\u00e4<\/span>\r\n              <span>\ud83e\udded Henkil\u00f6kohtainen suositus<\/span>\r\n            <\/div>\r\n\r\n            <div class=\"hero-points\" aria-label=\"Edut\">\r\n              <div class=\"hero-point\">\r\n                <div class=\"hero-dot\">1<\/div>\r\n                <div>\r\n                  <b>Selke\u00e4 suunta<\/b>\r\n                  <small>Saat tiet\u00e4\u00e4, mit\u00e4 hoitoja kannattaa harkita tavoitteidesi saavuttamiseksi.<\/small>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"hero-point\">\r\n                <div class=\"hero-dot\">2<\/div>\r\n                <div>\r\n                  <b>Ilman h\u00e4tik\u00f6ityj\u00e4 p\u00e4\u00e4t\u00f6ksi\u00e4<\/b>\r\n                  <small>Diagnostiikka auttaa v\u00e4ltt\u00e4m\u00e4\u00e4n hetken mielijohteesta tehtyj\u00e4 valintoja.<\/small>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"hero-point\">\r\n                <div class=\"hero-dot\">3<\/div>\r\n                <div>\r\n                  <b>J\u00e4rgmine samm \u2014 tasuta diagnostika<\/b>\r\n                  <small>Testin j\u00e4lkeen sinua odottaa klinikalla asiantuntijan maksuton diagnostiikka.<\/small>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div>\r\n            <div class=\"ba-carousel\" data-ba-carousel aria-label=\"Meliorin todelliset ennen\/j\u00e4lkeen-tulokset\">\r\n              <div class=\"ba-head\">\r\n                <div class=\"ba-kicker\">Ennen \/ J\u00e4lkeen<\/div>\r\n                <h2>Meliorin todelliset tulokset<\/h2>\r\n                <p>6 asiakastarinaa: toiveesta tulokseen<\/p>\r\n              <\/div>\r\n\r\n              <div class=\"ba-stage\">\r\n                <button class=\"ba-image-btn\" type=\"button\" data-ba-gallery-open aria-label=\"Avaa tulosgalleria\">\r\n                  <img decoding=\"async\" class=\"ba-image\" src=\"\" alt=\"\" loading=\"eager\">\r\n                  <span class=\"ba-zoom\">Avaa galleria<\/span>\r\n                <\/button>\r\n\r\n                <button class=\"ba-nav ba-prev\" type=\"button\" data-ba-prev aria-label=\"Edellinen tulos\">\u2039<\/button>\r\n                <button class=\"ba-nav ba-next\" type=\"button\" data-ba-next aria-label=\"Seuraava tulos\">\u203a<\/button>\r\n              <\/div>\r\n\r\n              <div class=\"ba-copy\">\r\n                <h3 class=\"ba-title\"><\/h3>\r\n                <div class=\"ba-facts\">\r\n                  <div><b>Huolenaihe:<\/b> <span class=\"ba-request\"><\/span><\/div>\r\n                  <div><b>Ratkaisu:<\/b> <span class=\"ba-solution\"><\/span><\/div>\r\n                  <div><b>Tulos:<\/b> <span class=\"ba-result\"><\/span><\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ba-bottom\">\r\n                <div class=\"ba-count\"><span data-ba-current>1<\/span> \/ <span data-ba-total>6<\/span><\/div>\r\n                <div class=\"ba-dots\" data-ba-dots aria-label=\"Tulosten selaus\"><\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section>\r\n    <div class=\"container\">\r\n      <div class=\"cards-grid\">\r\n        <div class=\"info-card\">\r\n          <div class=\"icon-box\">1<\/div>\r\n          <h3>Yksil\u00f6llisesti<\/h3>\r\n          <p>Sama hoito voi toimia eri tavoin. Otamme huomioon hoitoalueen, huolenaiheesi ja aiemmat kokemuksesi.<\/p>\r\n        <\/div>\r\n        <div class=\"info-card\">\r\n          <div class=\"icon-box\">2<\/div>\r\n          <h3>Rehellinen ote<\/h3>\r\n          <p>Emme tyrkyt\u00e4 \u201dtrendihoitoja\u201d. Jos hoito ei ratkaise huolenaihettasi, ehdotamme vaihtoehtoja.<\/p>\r\n        <\/div>\r\n        <div class=\"info-card\">\r\n          <div class=\"icon-box\">3<\/div>\r\n          <h3>S\u00e4\u00e4st\u00e4t aikaa<\/h3>\r\n          <p>Tulet diagnostiikkaan valmistautuneena ja tied\u00e4t jo suunnilleen, miten edet\u00e4.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section>\r\n    <div class=\"container\">\r\n      <h2>Kenelle testi sopii?<\/h2>\r\n      <div class=\"glass-panel\" style=\"padding: 40px;\">\r\n        <div class=\"comparison-grid\">\r\n          <div class=\"compare-col\">\r\n            <h3 style=\"color: var(--success);\">Kannattaa t\u00e4ytt\u00e4\u00e4, jos:<\/h3>\r\n            <ul class=\"compare-list list-good\">\r\n              <li>Et tied\u00e4, mist\u00e4 aloittaa<\/li>\r\n              <li>Haluat ratkaista tietyn huolenaiheen (rypyt, pigmentti, akne ym.)<\/li>\r\n              <li>Pelk\u00e4\u00e4t k\u00e4ytt\u00e4v\u00e4si rahaa hoitoon, josta ei ole tulosta<\/li>\r\n              <li>Arvostat j\u00e4rjestelm\u00e4llist\u00e4 l\u00e4\u00e4ketieteellist\u00e4 l\u00e4hestymistapaa<\/li>\r\n            <\/ul>\r\n          <\/div>\r\n\r\n          <div class=\"compare-col\">\r\n            <h3 style=\"color: var(--text-muted);\">Ei sovi, jos:<\/h3>\r\n            <ul class=\"compare-list list-bad\">\r\n              <li>Etsit markkinoiden halvinta hintaa (keskitymme laatuun)<\/li>\r\n              <li>Toivot \u201dihmepilleri\u00e4\u201d yhdell\u00e4 hoitokerralla<\/li>\r\n              <li>Tarvitset kiireellist\u00e4 kirurgista apua<\/li>\r\n            <\/ul>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section>\r\n    <div class=\"container\">\r\n      <div class=\"cta-box\">\r\n        <h2>Oletko valmis saamaan henkil\u00f6kohtaisen suosituksen?<\/h2>\r\n        <p>Vastaa 5 kysymykseen ja selvit\u00e4, mill\u00e4 hoidoilla sinun kannattaa aloittaa.<\/p>\r\n        <button class=\"btn btn-primary\" data-melior-quiz-open type=\"button\">\ud83d\udc49 Aloita testi<\/button>\r\n        <p style=\"margin-top: 16px; font-size: 13px; opacity: 0.6;\">Testi ei sido sinua mihink\u00e4\u00e4n<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <footer class=\"footer\">\r\n    <div class=\"container\">\u00a9 Melior Clinics. Kaikki oikeudet pid\u00e4tet\u00e4\u00e4n.<\/div>\r\n  <\/footer>\r\n\r\n\r\n  <div class=\"ba-lightbox\" id=\"baLightbox\" aria-hidden=\"true\">\r\n    <div class=\"ba-lightbox-card\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Meliorin tulosgalleria\">\r\n      <button class=\"ba-lightbox-close\" type=\"button\" data-ba-lightbox-close aria-label=\"Sulje\">\u00d7<\/button>\r\n      <button class=\"ba-lightbox-prev\" type=\"button\" data-ba-lightbox-prev aria-label=\"Edellinen tulos\">\u2039<\/button>\r\n      <button class=\"ba-lightbox-next\" type=\"button\" data-ba-lightbox-next aria-label=\"Seuraava tulos\">\u203a<\/button>\r\n      <div class=\"ba-lightbox-media\">\r\n        <img decoding=\"async\" id=\"baLightboxImg\" src=\"\" alt=\"\">\r\n      <\/div>\r\n      <div class=\"ba-lightbox-copy\">\r\n        <div class=\"ba-kicker\">Meliorin todellinen tulos<\/div>\r\n        <h3 id=\"baLightboxTitle\"><\/h3>\r\n        <p><b>Huolenaihe:<\/b> <span id=\"baLightboxRequest\"><\/span><\/p>\r\n        <p><b>Ratkaisu:<\/b> <span id=\"baLightboxSolution\"><\/span><\/p>\r\n        <p><b>Tulos:<\/b> <span id=\"baLightboxResult\"><\/span><\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div id=\"mqCf7Mount\" style=\"display:none\">\r\n    \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f55568-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"55568\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/fi\/wp-json\/wp\/v2\/pages\/59569#wpcf7-f55568-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"55568\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.2.3\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f55568-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<p><label> Nimi<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" autocomplete=\"name\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span> <\/label>\n<\/p>\n<p><label> Puhelin<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-phone\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" autocomplete=\"tel\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"tel\" name=\"your-phone\" \/><\/span> <\/label>\n<\/p>\n<p><label> S\u00e4hk\u00f6posti<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" autocomplete=\"email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span> <\/label>\n<\/p>\n<p><label> Toivottu p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-date\"><input class=\"wpcf7-form-control wpcf7-date wpcf7-validates-as-required wpcf7-validates-as-date\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"date\" name=\"your-date\" \/><\/span> <\/label>\n<\/p>\n<p><label> Viestisi (valinnainen)<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\" name=\"your-message\"><\/textarea><\/span> <\/label>\n<\/p>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"your-subject\" \/>\n<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"L\u00e4het\u00e4\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\r\n  <\/div>\r\n\r\n\r\n  <script>\r\n  (() => {\r\n    'use strict';\r\n\r\n    const CASES = [\r\n      {\r\n        img: 'https:\/\/melior.ee\/wp-content\/uploads\/2026\/05\/Quiz-beforeafter-1000-x-1000-\u043f\u0438\u043a\u0441.png',\r\n        title: 'Pigmenttil\u00e4isk\u00e4 l\u00e4hes katosi jo ensimm\u00e4isen ELOS Plus -hoidon j\u00e4lkeen',\r\n        request: 'pigmenttil\u00e4isk\u00e4 silm\u00e4nalusalueella',\r\n        solution: '1 ELOS Plus -hoito',\r\n        result: 'l\u00e4isk\u00e4 muuttui l\u00e4hes n\u00e4kym\u00e4tt\u00f6m\u00e4ksi ja ihon s\u00e4vy tasaisemmaksi'\r\n      },\r\n      {\r\n        img: 'https:\/\/melior.ee\/wp-content\/uploads\/2026\/05\/Quiz-beforeafter-1000-x-1000-\u043f\u0438\u043a\u0441.-1.png',\r\n        title: 'Raikas ja luonnollinen tulos ensimm\u00e4isen Full Face Botox -hoidon j\u00e4lkeen',\r\n        request: 'ilmerypyt ja v\u00e4synyt ilme',\r\n        solution: 'Full Face Botox',\r\n        result: 'kasvot n\u00e4ytt\u00e4v\u00e4t raikkaammilta, katse on avoimempi ja tulos pysyy luonnollisena'\r\n      },\r\n      {\r\n        img: 'https:\/\/melior.ee\/wp-content\/uploads\/2026\/05\/Quiz-beforeafter-1000-x-1000-\u043f\u0438\u043a\u0441.-3.png',\r\n        title: 'Selv\u00e4 parannus hiussuoneen jo ensimm\u00e4isen ELOS Plus -hoidon j\u00e4lkeen',\r\n        request: 'n\u00e4kyv\u00e4 hiussuoni ja paikallinen punoitus silm\u00e4n alla',\r\n        solution: '1 ELOS Plus -hoito',\r\n        result: 'hiussuoni muuttui jo ensimm\u00e4isen hoidon j\u00e4lkeen l\u00e4hes huomaamattomaksi'\r\n      },\r\n      {\r\n        img: 'https:\/\/melior.ee\/wp-content\/uploads\/2026\/05\/Quiz-beforeafter-1000-x-1000-\u043f\u0438\u043a\u0441.-2.png',\r\n        title: 'Huulten muotoilu t\u00e4yteaineella: toivottu muoto ja luonnollinen volyymi',\r\n        request: 'toivottu muoto, selke\u00e4mpi \u00e4\u00e4riviiva ja luonnollinen volyymi',\r\n        solution: 'huulten muotoilu t\u00e4yteaineella (Revolax)',\r\n        result: 'huulet n\u00e4ytt\u00e4v\u00e4t huolitellummilta, harmonisemmilta ja ilmeikk\u00e4\u00e4mmilt\u00e4'\r\n      },\r\n      {\r\n        img: 'https:\/\/melior.ee\/wp-content\/uploads\/2026\/05\/\u041f\u043b\u0430\u0437\u043c\u043e\u0442\u0435\u0440\u0430\u043f\u0438\u044f-\u043f\u0440\u0438-\u0432\u044b\u043f\u0430\u0434\u0435\u043d\u0438\u0438-\u0432\u043e\u043b\u043e\u0441-\u043f\u0435\u0440\u0432\u044b\u0435-\u043d\u043e\u0432\u044b\u0435-\u0432\u043e\u043b\u043e\u0441\u044b-\u0443\u0436\u0435-\u043f\u043e\u0441\u043b\u0435-1-\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b.png',\r\n        title: 'Plasmahoito hiustenl\u00e4ht\u00f6\u00f6n: ensimm\u00e4iset uudet hiukset jo ensimm\u00e4isen hoidon j\u00e4lkeen',\r\n        request: 'hiustenl\u00e4ht\u00f6, hiukset olivat harventuneet selv\u00e4sti hiusrajan alueelta',\r\n        solution: '1 hiuspohjan plasmahoito',\r\n        result: 'uusia lyhyit\u00e4 hiuksia ilmestyi, ja hiusraja n\u00e4ytt\u00e4\u00e4 tuuheammalta'\r\n      },\r\n      {\r\n        img: 'https:\/\/melior.ee\/wp-content\/uploads\/2026\/05\/Quiz-beforeafter-1000-x-1000-\u043f\u0438\u043a\u0441.-5.png',\r\n        title: 'Botuliinihoito: selv\u00e4 tulos jo ensimm\u00e4isen hoidon j\u00e4lkeen',\r\n        request: 'voimakkaat ilmerypyt otsassa',\r\n        solution: '1 botuliinihoito',\r\n        result: 'otsa n\u00e4ytt\u00e4\u00e4 sile\u00e4mm\u00e4lt\u00e4 ja katse avoimemmalta'\r\n      }\r\n    ];\r\n\r\n    let active = 0;\r\n    let timer = null;\r\n\r\n    function q(sel, root = document) { return root.querySelector(sel); }\r\n    function qa(sel, root = document) { return Array.from(root.querySelectorAll(sel)); }\r\n\r\n    function fillCase(root, item, idx) {\r\n      const img = q('.ba-image', root);\r\n      if (img) {\r\n        img.style.opacity = '0';\r\n        setTimeout(() => {\r\n          img.src = item.img;\r\n          img.alt = item.title;\r\n          img.style.opacity = '1';\r\n        }, 120);\r\n      }\r\n      const title = q('.ba-title', root);\r\n      const req = q('.ba-request', root);\r\n      const sol = q('.ba-solution', root);\r\n      const res = q('.ba-result', root);\r\n      const cur = q('[data-ba-current]', root);\r\n      const total = q('[data-ba-total]', root);\r\n\r\n      if (title) title.textContent = item.title;\r\n      if (req) req.textContent = item.request;\r\n      if (sol) sol.textContent = item.solution;\r\n      if (res) res.textContent = item.result;\r\n      if (cur) cur.textContent = String(idx + 1);\r\n      if (total) total.textContent = String(CASES.length);\r\n\r\n      qa('.ba-dot', root).forEach((dot, i) => {\r\n        dot.classList.toggle('is-active', i === idx);\r\n        dot.setAttribute('aria-current', i === idx ? 'true' : 'false');\r\n      });\r\n    }\r\n\r\n    function render(root, idx) {\r\n      active = (idx + CASES.length) % CASES.length;\r\n      fillCase(root, CASES[active], active);\r\n    }\r\n\r\n    function resetTimer(root) {\r\n      if (timer) clearInterval(timer);\r\n      timer = setInterval(() => render(root, active + 1), 5200);\r\n    }\r\n\r\n    function openLightbox(idx) {\r\n      active = (idx + CASES.length) % CASES.length;\r\n      const item = CASES[active];\r\n\r\n      const box = q('#baLightbox');\r\n      if (!box) return;\r\n\r\n      q('#baLightboxImg').src = item.img;\r\n      q('#baLightboxImg').alt = item.title;\r\n      q('#baLightboxTitle').textContent = item.title;\r\n      q('#baLightboxRequest').textContent = item.request;\r\n      q('#baLightboxSolution').textContent = item.solution;\r\n      q('#baLightboxResult').textContent = item.result;\r\n\r\n      box.classList.add('is-open');\r\n      box.setAttribute('aria-hidden', 'false');\r\n      document.body.style.overflow = 'hidden';\r\n    }\r\n\r\n    function closeLightbox() {\r\n      const box = q('#baLightbox');\r\n      if (!box) return;\r\n      box.classList.remove('is-open');\r\n      box.setAttribute('aria-hidden', 'true');\r\n      document.body.style.overflow = '';\r\n    }\r\n\r\n    function bootCarousel() {\r\n      const root = q('[data-ba-carousel]');\r\n      if (!root) return;\r\n\r\n      const dots = q('[data-ba-dots]', root);\r\n      if (dots && !dots.children.length) {\r\n        dots.innerHTML = CASES.map((_, i) => (\r\n          `<button class=\"ba-dot\" type=\"button\" data-ba-dot=\"${i}\" aria-label=\"N\u00e4yt\u00e4 tulos ${i + 1}\"><\/button>`\r\n        )).join('');\r\n      }\r\n\r\n      q('[data-ba-prev]', root)?.addEventListener('click', () => { render(root, active - 1); resetTimer(root); });\r\n      q('[data-ba-next]', root)?.addEventListener('click', () => { render(root, active + 1); resetTimer(root); });\r\n      q('[data-ba-gallery-open]', root)?.addEventListener('click', () => openLightbox(active));\r\n\r\n      qa('[data-ba-dot]', root).forEach(dot => {\r\n        dot.addEventListener('click', () => {\r\n          render(root, parseInt(dot.getAttribute('data-ba-dot'), 10) || 0);\r\n          resetTimer(root);\r\n        });\r\n      });\r\n\r\n      render(root, 0);\r\n      resetTimer(root);\r\n    }\r\n\r\n    function bootLightbox() {\r\n      const box = q('#baLightbox');\r\n      if (!box) return;\r\n\r\n      q('[data-ba-lightbox-close]', box)?.addEventListener('click', closeLightbox);\r\n      q('[data-ba-lightbox-prev]', box)?.addEventListener('click', () => openLightbox(active - 1));\r\n      q('[data-ba-lightbox-next]', box)?.addEventListener('click', () => openLightbox(active + 1));\r\n\r\n      box.addEventListener('click', (e) => {\r\n        if (e.target === box) closeLightbox();\r\n      });\r\n\r\n      document.addEventListener('keydown', (e) => {\r\n        if (!box.classList.contains('is-open')) return;\r\n        if (e.key === 'Escape') closeLightbox();\r\n        if (e.key === 'ArrowLeft') openLightbox(active - 1);\r\n        if (e.key === 'ArrowRight') openLightbox(active + 1);\r\n      });\r\n    }\r\n\r\n    if (document.readyState === 'loading') {\r\n      document.addEventListener('DOMContentLoaded', () => {\r\n        bootCarousel();\r\n        bootLightbox();\r\n      });\r\n    } else {\r\n      bootCarousel();\r\n      bootLightbox();\r\n    }\r\n  })();\r\n  <\/script>\r\n\r\n\r\n  <script>\r\n  (() => {\r\n    'use strict';\r\n\r\n    const CONFIG = {\r\n      SHOP_URL: 'https:\/\/melior.ee\/fi\/palvelut\/',\r\n\r\n      \/* Otselink Altegio broneeringusse.\r\n         Kui lisate Altegios tasuta diagnostika teenuse ID, muutke lingiks:\r\n         https:\/\/n1376880.alteg.io\/company\/1312549\/personal\/select-services?o=s<TEENUSE_ID> *\/\r\n      DIAG_URL: 'https:\/\/n1376880.alteg.io\/company\/1312549\/personal\/menu?o=',\r\n\r\n      DIAG_PRICE_TEXT: 'Diagnostiikka \u2014 maksuton',\r\n      BRAND_ACCENT: '#abb087',\r\n      BRAND_INK: '#2c2a26',\r\n      LOADING_MS: 1300,\r\n      STORAGE_KEY: 'melior_quiz_last',\r\n      CF7_MOUNT_ID: 'mqCf7Mount'\r\n    };\r\n\r\n    const UI = {\r\n      introTitle: 'L\u00f6yd\u00e4 tavoitteeseesi sopiva hoito',\r\n      introSub: 'Vastaa muutamaan kysymykseen \u2014 se vie ~1 minuutin',\r\n      startBtn: 'Aloita',\r\n\r\n      q1Title: 'Mik\u00e4 sinua h\u00e4iritsee eniten?',\r\n      q1Options: [\r\n        { value: 'face', label: 'Kasvot' },\r\n        { value: 'skin', label: 'Iho' },\r\n        { value: 'body', label: 'Vartalo' },\r\n        { value: 'multi', label: 'Useampi alue' }\r\n      ],\r\n\r\n      q2Title: 'Tarkenna huolenaiheesi',\r\n\r\n      q3Title: 'Onko sinulla aiempaa kokemusta hoidoista?',\r\n      q3Options: [\r\n        { value: 'yes_regular', label: 'K\u00e4yn hoidoissa s\u00e4\u00e4nn\u00f6llisesti' },\r\n        { value: 'yes_weak', label: 'Olen k\u00e4ynyt hoidoissa aiemmin' },\r\n        { value: 'no_first', label: 'Suunnittelen ensimm\u00e4ist\u00e4 hoitoani' }\r\n      ],\r\n\r\n      q4Title: 'Mik\u00e4 on sinulle t\u00e4rkeint\u00e4?',\r\n      q4Options: [\r\n        { value: 'visible', label: 'N\u00e4kyv\u00e4 tulos' },\r\n        { value: 'safe', label: 'Turvallisuus \/ mahdollisimman lyhyt toipumisaika' },\r\n        { value: 'complex', label: 'Kokonaisvaltainen l\u00e4hestymistapa' }\r\n      ],\r\n\r\n      q5Title: 'Millainen hoitomuoto sopii sinulle?',\r\n      q5Options: [\r\n        { value: 'one', label: 'Kertahoito' },\r\n        { value: 'course', label: 'Hoitosarja' },\r\n        { value: 'unsure', label: 'En tied\u00e4 viel\u00e4' }\r\n      ],\r\n\r\n      loadingTitle: 'Analysoimme vastauksiasi...',\r\n      resultTitle: 'Suositellut ratkaisut',\r\n      resultDisclaimer: 'Yht\u00e4 kaikille sopivaa ratkaisua ei ole. Tulokset riippuvat yksil\u00f6llisist\u00e4 tekij\u00f6ist\u00e4.',\r\n\r\n      offerTitle: 'Seuraava askel \u2014 maksuton diagnostiikka',\r\n      offerText:\r\n        'Jotta voimme m\u00e4\u00e4ritt\u00e4\u00e4 tarkasti, mik\u00e4 sopii juuri sinulle, tarvitaan diagnostiikka klinikalla.\\n' +\r\n        'Diagnostiikassa saat:\\n' +\r\n        '\u2022 ammattilaisen arvion tilanteestasi\\n' +\r\n        '\u2022 k\u00e4sityksen siit\u00e4, mitk\u00e4 hoidot sopivat ja mitk\u00e4 eiv\u00e4t\\n' +\r\n        '\u2022 henkil\u00f6kohtaisen hoitosuunnitelman\\n\\n' +\r\n        'Bonus: diagnostiikka on maksuton.',\r\n\r\n      ctaDiag: 'Varaa aika diagnostiikkaan',\r\n      ctaNext: 'JATKA JA SAA MAKSUTON BONUS',\r\n      ctaBookNote: 'Valitse itsellesi sopiva aika heti \u2014 ilman odottelua',\r\n\r\n      \/* --- Personaalne PDF (tulemuste ekraan) --- *\/\r\n      pdfKicker:    'Henkil\u00f6kohtainen suunnitelmasi',\r\n      pdfTitle:     'Lataa tuloksesi',\r\n      pdfText:      'Kokosimme vastaustesi perusteella henkil\u00f6kohtaisen PDF:n: sopivat suunnat, hoidot ja seuraavat askeleet.',\r\n      pdfBtn:       'Lataa PDF',\r\n      pdfBtnWait:   'Kokoamme PDF:\u00e4\u00e4...',\r\n      pdfBtnReady:  'PDF on valmis \u2713',\r\n      pdfErr:       'Ei onnistunut. Yrit\u00e4 uudelleen',\r\n      pdfMailLabel: 'T\u00e4yt\u00e4 tietosi \u2014 ja PDF on sinun',\r\n      pdfMailPh:    'S\u00e4hk\u00f6postiosoite',\r\n      pdfMailBtn:   'L\u00e4het\u00e4',\r\n      pdfMailOk:    'L\u00e4hetimme PDF:n s\u00e4hk\u00f6postiisi \u2713',\r\n      pdfMailErr:   'L\u00e4hetys ep\u00e4onnistui. Yrit\u00e4 uudelleen.',\r\n      pdfMailBad:   'Anna kelvollinen s\u00e4hk\u00f6postiosoite.',\r\n      pdfPhonePh:   'Puhelinnumero',\r\n      pdfPhoneBad:  'Anna puhelinnumerosi.',\r\n      pdfRegNote:   'Nimi ja puhelinnumero ovat pakollisia. S\u00e4hk\u00f6posti \u2014 jos haluat PDF:n my\u00f6s s\u00e4hk\u00f6postiisi.',\r\n      pdfNamePh:    'Nimesi',\r\n      pdfNameBad:   'Anna nimesi.',\r\n      pdfMailBtn2:  'L\u00e4het\u00e4 s\u00e4hk\u00f6postiin',\r\n\r\n      formTitle: 'Diagnostiikkapyynt\u00f6',\r\n      formSub: 'T\u00e4yt\u00e4 lomake \u2014 otamme sinuun yhteytt\u00e4 ja sovimme sopivan ajan.',\r\n\r\n      thanksTitle: 'Kiitos! \ud83e\udd0d',\r\n      thanksText: 'Olemme vastaanottaneet pyynt\u00f6si. Otamme sinuun yhteytt\u00e4 mahdollisimman pian.',\r\n      closeBtn: 'Sulge',\r\n\r\n      fallbackHint: 'Jos et ole viel\u00e4 valmis \u2013 tallenna tulos ja palaa asiaan my\u00f6hemmin.',\r\n      btnCopy: 'Kopioi tulos',\r\n\r\n      back: 'Takaisin',\r\n      close: 'Sulge',\r\n      details: 'Lue lis\u00e4\u00e4'\r\n    };\r\n\r\n    function getProblemOptions(zone) {\r\n      if (zone === 'face') return [\r\n        { value: 'face_oval', label: 'Kasvojen \u00e4\u00e4riviivat \/ kimmoisuus' },\r\n        { value: 'face_wrinkles', label: 'Rypyt' },\r\n        { value: 'face_dull', label: 'Eloton jume \/ v\u00e4symys' },\r\n        { value: 'face_doublechin', label: 'Kaksoisleuka' },\r\n        { value: 'other', label: 'Muu' }\r\n      ];\r\n\r\n      if (zone === 'skin') return [\r\n        { value: 'skin_acne', label: 'Akne \/ tulehdukset \/ huokoset' },\r\n        { value: 'skin_pigment', label: 'Pigmentaatio \/ ep\u00e4tasainen s\u00e4vy' },\r\n        { value: 'skin_sensitive', label: 'Kuivuus \/ herkkyys \/ punoitus' },\r\n        { value: 'other', label: 'Muu' }\r\n      ];\r\n\r\n      if (zone === 'body') return [\r\n        { value: 'body_fat', label: 'Ylim\u00e4\u00e4r\u00e4inen volyymi \/ paikallinen rasva' },\r\n        { value: 'body_cellulite', label: 'Selluliitti' },\r\n        { value: 'body_laxity', label: 'Ihon veltostuminen \/ kiinteyden heikkeneminen' },\r\n        { value: 'body_swelling', label: 'Turvotus' },\r\n        { value: 'other', label: 'Muu' }\r\n      ];\r\n\r\n      return [\r\n        { value: 'face_oval', label: 'Kasvot: \u00e4\u00e4riviivat\/kimmoisuus' },\r\n        { value: 'face_wrinkles', label: 'Kasvot: rypyt' },\r\n        { value: 'skin_pigment', label: 'Iho: pigmentaatio' },\r\n        { value: 'skin_acne', label: 'Iho: akne\/huokoset' },\r\n        { value: 'body_fat', label: 'Vartalo: volyymi\/rasva' },\r\n        { value: 'body_cellulite', label: 'Vartalo: selluliitti' },\r\n        { value: 'body_laxity', label: 'Vartalo: ihon veltostuminen' },\r\n        { value: 'body_swelling', label: 'Vartalo: turvotus' },\r\n        { value: 'other', label: 'Muu' }\r\n      ];\r\n    }\r\n\r\n    const PROBLEM_MAP = {\r\n      face_oval: {\r\n        probleem: ['naokontuuri-hajumine', 'lotvumine', 'lotvunud-naokontuur'],\r\n        piirkond: ['nagu','louajoon'],\r\n        directions: [\r\n          {\r\n            title: 'HIFU SMAS',\r\n            desc: 'Kohotus ilman leikkausta.',\r\n            details: 'HIFU SMAS on laitteella teht\u00e4v\u00e4 kohottava hoito, jota k\u00e4ytet\u00e4\u00e4n, kun iho on veltostunut ja kasvojen \u00e4\u00e4riviivat ovat pehmentyneet. Hoito auttaa tukemaan kudosten kiinteytymist\u00e4 ja voi sopia sinulle, jos haluat tuloksia ilman kirurgista toimenpidett\u00e4.'\r\n          },\r\n          {\r\n            title: 'Biostimulaatio',\r\n            desc: 'Ihon tiivist\u00e4minen ja kasvojen \u00e4\u00e4riviivojen tukeminen.',\r\n            details: 'Biostimulaatio tukee ihon omaa kollageenintuotantoa ja auttaa parantamaan ihon laatua, tiiviytt\u00e4 ja kimmoisuutta. Se sopii, kun tavoitteena on luonnollisempi ja v\u00e4hitellen kehittyv\u00e4 tulos.'\r\n          }\r\n        ]\r\n      },\r\n      face_wrinkles: {\r\n        probleem: ['kortsud','peened-kortsud','pindmised-kortsud'],\r\n        piirkond: ['nagu','silmad','otsmik'],\r\n        directions: [\r\n          {\r\n            title: 'Botuliinihoito',\r\n            desc: 'Ilmeryppyjen korjaus, kun hoito on aiheellinen.',\r\n            details: 'Botuliinihoitoa k\u00e4ytet\u00e4\u00e4n ilmeryppyihin esimerkiksi otsassa, silmien ymp\u00e4rill\u00e4 tai kulmien v\u00e4liss\u00e4. Diagnostiikassa arvioidaan, sopiiko hoito sinun tilanteeseesi ja tavoitteeseesi.'\r\n          },\r\n          {\r\n            title: 'Biorevitalisaatio',\r\n            desc: 'Kosteutus ja ihon laadun parantaminen.',\r\n            details: 'Biorevitalisaatio auttaa parantamaan ihon kosteutta, kimmoisuutta ja yleist\u00e4 laatua. Se voi sopia, jos ihosi tuntuu v\u00e4syneelt\u00e4, kuivalta tai ohuelta.'\r\n          }\r\n        ]\r\n      },\r\n      face_dull: {\r\n        probleem: ['tuhmunud-jume','vasinud-nahk'],\r\n        piirkond: ['nagu'],\r\n        directions: [\r\n          {\r\n            title: 'Happokuorinnat',\r\n            desc: 'Kirkkaampi iho ja tasaisempi s\u00e4vy.',\r\n            details: 'Happokuorinta auttaa poistamaan ihon pinnalta elottoman kerroksen, tasoittamaan s\u00e4vy\u00e4 ja tukemaan ihon uusiutumista. Sopiva kuorintatyyppi valitaan ihon kunnon mukaan.'\r\n          },\r\n          {\r\n            title: 'Mikroneulaus',\r\n            desc: 'Ihon pintarakenteen tasoittaminen ja kiinteytt\u00e4minen, kun hoito on aiheellinen.',\r\n            details: 'Mikroneulaus stimuloi ihon luonnollista uusiutumista ja voi auttaa parantamaan ihon pintarakennetta, huokosia, pinnallisia arpia sek\u00e4 yleist\u00e4 kiinteytt\u00e4.'\r\n          }\r\n        ]\r\n      },\r\n      face_doublechin: {\r\n        probleem: ['topeltloug','lokaalne-rasv'],\r\n        piirkond: ['loug','louajoon'],\r\n        directions: [\r\n          {\r\n            title: 'HIFU SMAS',\r\n            desc: 'Kudosten kiinteytt\u00e4minen ja tiivist\u00e4minen, kun hoito on aiheellinen.',\r\n            details: 'HIFU SMAS voi sopia leukalinjan ja kaksoisleuan alueen kiinteytt\u00e4miseen, jos ongelma johtuu kudosten veltostumisesta.'\r\n          },\r\n          {\r\n            title: 'Lipolyysi',\r\n            desc: 'Paikallinen muotoilu, kun hoito on aiheellinen.',\r\n            details: 'Lipolyysi on tarkoitettu paikallisen rasvakudoksen v\u00e4hent\u00e4miseen. Diagnostiikassa arvioidaan, johtuuko ongelma ennemmin rasvakudoksesta, veltostumisesta vai niiden yhdistelm\u00e4st\u00e4.'\r\n          }\r\n        ]\r\n      },\r\n      skin_acne: {\r\n        probleem: ['akne','probleemne-nahk','rasune-nahk','poorid','komedoonid','poletik'],\r\n        piirkond: ['nagu'],\r\n        directions: [\r\n          {\r\n            title: 'Happokuorinnat',\r\n            desc: 'Ihon uudistaminen ja tulehdusten hoito.',\r\n            details: 'Happokuorinnat voivat auttaa aknen, komedonien, rasvaisen ihon ja huokosten hoidossa. Tarkka ratkaisu riippuu tulehduksen aktiivisuudesta ja ihon herkkyydest\u00e4.'\r\n          },\r\n          {\r\n            title: 'Kasvohoidot',\r\n            desc: 'Hyv\u00e4 aloitus ja tukea iholle.',\r\n            details: 'Ammattimainen kasvohoito auttaa arvioimaan ihon kuntoa, puhdistamaan ihoa ja tukemaan kotihoitosuunnitelmaa. Ongelmaihon kohdalla se on usein ensimm\u00e4inen askel.'\r\n          }\r\n        ]\r\n      },\r\n      skin_pigment: {\r\n        probleem: ['pigmentatsioon','huperpigmentatsioon','pigment-voi-nahatooni-ebauhtlus','pigmendilaigud'],\r\n        piirkond: ['nagu','kael','dekoltee'],\r\n        directions: [\r\n          {\r\n            title: 'Laserhoidot',\r\n            desc: 'Vaihtoehto pigmentaatioon, kun hoito on aiheellinen.',\r\n            details: 'Laserhoitoja k\u00e4ytet\u00e4\u00e4n tietyntyyppisiin pigmenttimuutoksiin. Ennen hoitoa on t\u00e4rke\u00e4\u00e4 arvioida pigmentin tyyppi, syvyys ja ihoreaktion riski.'\r\n          },\r\n          {\r\n            title: 'Happokuorinnat',\r\n            desc: 'S\u00e4vyn tasoittaminen ja ihon uudistaminen.',\r\n            details: 'Happokuorinnat voivat auttaa tasoittamaan ihon s\u00e4vy\u00e4 ja v\u00e4hent\u00e4m\u00e4\u00e4n pinnallista pigmentaatiota. Paras tulos saavutetaan yleens\u00e4 hoitosarjana ja oikeanlaisen SPF-suojan kanssa.'\r\n          }\r\n        ]\r\n      },\r\n      skin_sensitive: {\r\n        probleem: ['tundlik-nahk','kuiv-nahk','dehudreeritud-nahk','punetus'],\r\n        piirkond: ['nagu'],\r\n        directions: [\r\n          {\r\n            title: 'Kasvohoidot',\r\n            desc: 'Ihon suojamuurin palauttaminen ja hyv\u00e4 olo iholle.',\r\n            details: 'Herk\u00e4n ja kuivan ihon kohdalla tavoitteena on rauhoittaa ja palauttaa ihon suojamuuri. Hoito valitaan hell\u00e4varaisesti, liiallista \u00e4rsytyst\u00e4 v\u00e4ltt\u00e4en.'\r\n          },\r\n          {\r\n            title: 'Biorevitalisaatio',\r\n            desc: 'Kosteutus ja tukea ihon laadulle.',\r\n            details: 'Biorevitalisaatio voi auttaa kosteuttamaan ihoa syvemm\u00e4lt\u00e4 ja parantamaan sen laatua, jos iho on kosteusk\u00f6yh\u00e4 tai menett\u00e4nyt kimmoisuuttaan.'\r\n          }\r\n        ]\r\n      },\r\n      body_fat: {\r\n        probleem: ['lokaalne-rasv','uleliigne-rasv'],\r\n        piirkond: ['keha','koht','kuljed','reied','tuharad'],\r\n        directions: [\r\n          {\r\n            title: 'Vartalohoidot',\r\n            desc: 'Laitehoitoja tavoitteesi mukaan.',\r\n            details: 'Vartalohoidot valitaan alueen ja tavoitteen mukaan: volyymin v\u00e4hent\u00e4minen, ihon kiinteytt\u00e4minen tai \u00e4\u00e4riviivojen muotoilu.'\r\n          },\r\n          {\r\n            title: 'Lipolyysi',\r\n            desc: 'Paikallinen muotoilu, kun hoito on aiheellinen.',\r\n            details: 'Lipolyysi voi sopia pienempien paikallisten rasvakertymien muotoiluun. Diagnostiikassa arvioidaan hoitoalue ja realistinen odotettavissa oleva tulos.'\r\n          }\r\n        ]\r\n      },\r\n      body_cellulite: {\r\n        probleem: ['tselluliit','pehme-tselluliit'],\r\n        piirkond: ['reied','tuharad','keha'],\r\n        directions: [\r\n          {\r\n            title: 'Hieronnat',\r\n            desc: 'Lymfakierron tukeminen ja kudosten k\u00e4sittely.',\r\n            details: 'Hieronnat ja lymfakiertoa tehostavat hoidot voivat tukea kudosten aineenvaihduntaa, v\u00e4hent\u00e4\u00e4 turvotusta ja parantaa ihon ulkon\u00e4k\u00f6\u00e4.'\r\n          },\r\n          {\r\n            title: 'Vartalohoidot',\r\n            desc: 'Yhdistelmi\u00e4 tavoitteesi mukaan.',\r\n            details: 'Selluliittiin k\u00e4ytet\u00e4\u00e4n usein yhdistelm\u00e4\u00e4: laitehoitoja, hierontoja ja kotihoitoa. Sopiva suunnitelma riippuu selluliitin tyypist\u00e4.'\r\n          }\r\n        ]\r\n      },\r\n      body_laxity: {\r\n        probleem: ['lotvumine','lotvunud-nahk'],\r\n        piirkond: ['keha','kaed','koht','reied','tuharad'],\r\n        directions: [\r\n          {\r\n            title: 'HIFU',\r\n            desc: 'Kudosten tiivist\u00e4minen ja kiinteytt\u00e4minen, kun hoito on aiheellinen.',\r\n            details: 'HIFU voi sopia, kun iho ja kudokset ovat veltostuneet ja tavoitteena on kiinteytt\u00e4minen ilman leikkausta. Tulos kehittyy v\u00e4hitellen.'\r\n          },\r\n          {\r\n            title: 'Biostimulaatio',\r\n            desc: 'Tukea kollageenille ja ihon laadulle.',\r\n            details: 'Biostimulaatio tukee ihon rakennetta ja kollageenin muodostumista. Sit\u00e4 k\u00e4ytet\u00e4\u00e4n ihon laadun, kimmoisuuden ja tiiviyden parantamiseen.'\r\n          }\r\n        ]\r\n      },\r\n      body_swelling: {\r\n        probleem: ['tursed'],\r\n        piirkond: ['keha','jalad'],\r\n        directions: [\r\n          {\r\n            title: 'Hieronnat',\r\n            desc: 'V\u00e4hemm\u00e4n turvotusta ja kevyempi olo.',\r\n            details: 'Lymfakiertoa tehostava hieronta voi auttaa v\u00e4hent\u00e4m\u00e4\u00e4n turvotusta ja raskauden tunnetta. Soveltuvuus riippuu turvotuksen syyst\u00e4 ja terveydentilastasi.'\r\n          },\r\n          {\r\n            title: 'IV-infuusiohoidot',\r\n            desc: 'Palautumisen tukeminen.',\r\n            details: 'IV-infuusiohoidot voivat tukea palautumista ja yleist\u00e4 hyvinvointia, mutta niiden soveltuvuus arvioidaan yksil\u00f6llisesti.'\r\n          }\r\n        ]\r\n      }\r\n    };\r\n\r\n    const escHtml = (s) => (s ?? '').toString()\r\n      .replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;')\r\n      .replace(\/\"\/g,'&quot;').replace(\/'\/g,'&#039;');\r\n\r\n    function prettyZone(v) {\r\n      return (UI.q1Options.find(x => x.value === v)?.label) || v || '-';\r\n    }\r\n\r\n    function prettyOption(list, v) {\r\n      return (list.find(x => x.value === v)?.label) || v || '-';\r\n    }\r\n\r\n    function makeSummaryText(st) {\r\n      const a = st.answers || {};\r\n      const rec = st.rec || {};\r\n      const dirTitles = (rec.directions || []).map(d => `\u2022 ${d.title}`).join('\\n');\r\n\r\n      return [\r\n        'QUIZ-pyynt\u00f6 (FI)',\r\n        '',\r\n        `Alue: ${prettyZone(a.zone)}`,\r\n        `Huolenaihe: ${a.problem || '-'}${a.problem === 'other' ? ` (${a.otherText || ''})` : ''}`,\r\n        `Kokemus: ${prettyOption(UI.q3Options, a.experience)}`,\r\n        `Prioriteetti: ${prettyOption(UI.q4Options, a.priority)}`,\r\n        `Hoitomuoto: ${prettyOption(UI.q5Options, a.format)}`,\r\n        '',\r\n        'Mahdolliset suunnat:',\r\n        dirTitles || '\u2014',\r\n        '',\r\n        'Bonus: maksuton diagnostiikka'\r\n      ].join('\\n');\r\n    }\r\n\r\n    function buildRecommendation(state) {\r\n      const { problem, otherText } = state.answers;\r\n      const entry = PROBLEM_MAP[problem];\r\n\r\n      const directions = entry?.directions?.length\r\n        ? entry.directions\r\n        : [{\r\n            title: 'Kasvohoidot',\r\n            desc: 'Hoito-ohjelman valinta yhdess\u00e4 asiantuntijan kanssa.',\r\n            details: 'Jos huolenaiheesi ei sovi suoraan mihink\u00e4\u00e4n vaihtoehtoon, diagnostiikka auttaa valitsemaan sopivan ja turvallisen suunnan. Asiantuntija arvioi ihosi kunnon ja laatii sinulle henkil\u00f6kohtaisen suunnitelman.'\r\n          }];\r\n\r\n      return {\r\n        directions,\r\n        note: (problem === 'other' && otherText) ? `Kommenttisi: \"${otherText}\"` : ''\r\n      };\r\n    }\r\n\r\n    let cf7Node = null;\r\n\r\n    function getCf7Node() {\r\n      if (cf7Node) return cf7Node;\r\n      const mount = document.getElementById(CONFIG.CF7_MOUNT_ID);\r\n      if (!mount) return null;\r\n      cf7Node = mount.firstElementChild;\r\n      return cf7Node;\r\n    }\r\n\r\n    function unmountCf7() {\r\n      const mount = document.getElementById(CONFIG.CF7_MOUNT_ID);\r\n      if (!mount) return;\r\n      const node = getCf7Node();\r\n      if (!node) return;\r\n      if (node.parentElement !== mount) mount.appendChild(node);\r\n    }\r\n\r\n    function initCf7In(container) {\r\n      const forms = container.querySelectorAll('.wpcf7 form');\r\n      if (!forms.length) return;\r\n\r\n      if (window.wpcf7 && typeof window.wpcf7.init === 'function') {\r\n        forms.forEach(f => window.wpcf7.init(f));\r\n      } else {\r\n        document.dispatchEvent(new Event('wpcf7init'));\r\n      }\r\n    }\r\n\r\n    function hideUserMessageField(container) {\r\n      const ta = container.querySelector('textarea[name=\"your-message\"]');\r\n      if (!ta) return;\r\n      const label = ta.closest('label');\r\n      if (label) label.style.display = 'none';\r\n      else ta.style.display = 'none';\r\n    }\r\n\r\n    function fillFormFromQuiz(container, state) {\r\n      const wrap = container.querySelector('.wpcf7');\r\n      if (!wrap) return;\r\n\r\n      const subj = wrap.querySelector('input[name=\"your-subject\"]');\r\n      if (subj) subj.value = 'QUIZ-pyynt\u00f6 - FI';\r\n\r\n      const msg = wrap.querySelector('textarea[name=\"your-message\"]');\r\n      if (msg) msg.value = makeSummaryText(state);\r\n    }\r\n\r\n    function mountCf7Into(targetEl, state) {\r\n      const node = getCf7Node();\r\n      if (!targetEl || !node) return false;\r\n\r\n      targetEl.innerHTML = '';\r\n      targetEl.appendChild(node);\r\n      node.style.display = '';\r\n\r\n      initCf7In(targetEl);\r\n      fillFormFromQuiz(targetEl, state);\r\n      hideUserMessageField(targetEl);\r\n\r\n      return true;\r\n    }\r\n\r\n    const CSS = `\r\n      #meliorQuizOverlay {\r\n        position: fixed; inset: 0; z-index: 999999;\r\n        display: none; align-items: center; justify-content: center;\r\n        font-family: -apple-system, BlinkMacSystemFont, Roboto, sans-serif;\r\n      }\r\n      #meliorQuizOverlay.mq-open { display: flex; }\r\n\r\n      .mq-backdrop {\r\n        position: absolute; inset: 0;\r\n        background: rgba(44, 42, 38, 0.6);\r\n        backdrop-filter: blur(4px);\r\n        animation: mqFadeIn 0.3s ease;\r\n      }\r\n\r\n      .mq-modal {\r\n        position: relative;\r\n        width: 100%; max-width: 650px;\r\n        margin: 16px;\r\n        background: #fff;\r\n        border-radius: 16px;\r\n        box-shadow: 0 20px 50px rgba(0,0,0,0.2);\r\n        max-height: 90vh;\r\n        display: flex;\r\n        flex-direction: column;\r\n        overflow: hidden;\r\n        animation: mqSlideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);\r\n      }\r\n\r\n      .mq-head {\r\n        flex-shrink: 0;\r\n        padding: 18px 24px;\r\n        background: #fff;\r\n        border-bottom: 1px solid #f0f0f0;\r\n        display: flex; justify-content: space-between; align-items: center;\r\n        position: relative;\r\n        z-index: 2;\r\n      }\r\n\r\n      .mq-brand { font-weight: 800; color: ${CONFIG.BRAND_INK}; letter-spacing: 0.5px; font-size: 14px; text-transform: uppercase; }\r\n      .mq-close {\r\n        border: 0; background: transparent; cursor: pointer;\r\n        font-size: 28px; line-height: 1; color: #999;\r\n        transition: color 0.2s; padding: 0;\r\n      }\r\n      .mq-close:hover { color: #333; }\r\n\r\n      .mq-progress-track {\r\n        position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: #f5f5f5;\r\n      }\r\n      .mq-progress-fill {\r\n        height: 100%; background: ${CONFIG.BRAND_ACCENT}; width: 0%; transition: width 0.4s ease;\r\n      }\r\n\r\n      .mq-body {\r\n        padding: 24px;\r\n        overflow-y: auto;\r\n        overflow-x: hidden;\r\n        flex-grow: 1;\r\n        -webkit-overflow-scrolling: touch;\r\n      }\r\n\r\n      .mq-step-anim { animation: mqFadeIn 0.4s ease; }\r\n\r\n      .mq-modal h2 { margin: 0 0 12px; font-size: 22px; font-weight: 700; color: ${CONFIG.BRAND_INK}; line-height: 1.2; }\r\n      .mq-modal p { margin: 0 0 20px; color: #666; font-size: 15px; line-height: 1.5; }\r\n\r\n      .mq-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }\r\n      @media (min-width: 480px) { .mq-grid { grid-template-columns: 1fr 1fr; } }\r\n\r\n      .mq-option {\r\n        padding: 16px;\r\n        border: 1px solid #e5e5e5;\r\n        border-radius: 12px;\r\n        background: #fff;\r\n        cursor: pointer;\r\n        font-weight: 500; font-size: 15px; color: #333;\r\n        transition: all 0.2s ease;\r\n        display: flex; align-items: center; justify-content: space-between;\r\n      }\r\n      .mq-option:hover { border-color: ${CONFIG.BRAND_ACCENT}; background: #fafafa; }\r\n      .mq-option.mq-selected {\r\n        border-color: ${CONFIG.BRAND_ACCENT};\r\n        background: rgba(171, 176, 135, 0.10);\r\n        color: #000;\r\n        box-shadow: 0 0 0 1px ${CONFIG.BRAND_ACCENT};\r\n      }\r\n      .mq-check { width: 8px; height: 8px; border-radius: 50%; background: ${CONFIG.BRAND_ACCENT}; display: none; }\r\n      .mq-option.mq-selected .mq-check { display: block; }\r\n\r\n      .mq-input {\r\n        width: 100%; padding: 14px; border-radius: 10px;\r\n        border: 1px solid #ddd; font-size: 15px; outline: none; box-sizing: border-box;\r\n        transition: border-color 0.2s;\r\n      }\r\n      .mq-input:focus { border-color: ${CONFIG.BRAND_ACCENT}; }\r\n\r\n      .mq-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }\r\n      .mq-btn {\r\n        padding: 12px 22px; border-radius: 8px; border: 1px solid transparent;\r\n        font-weight: 600; font-size: 15px; cursor: pointer; text-decoration: none; text-align: center;\r\n        transition: all 0.2s; display: inline-flex; justify-content: center; align-items: center;\r\n      }\r\n      .mq-btn-primary {\r\n        background: ${CONFIG.BRAND_ACCENT}; color: #fff;\r\n        box-shadow: 0 4px 10px rgba(171,176,135, 0.3);\r\n      }\r\n      .mq-btn-primary:hover { background: #9da27a; transform: translateY(-1px); }\r\n      .mq-btn-ghost { background: transparent; border-color: #ddd; color: #666; }\r\n      .mq-btn-ghost:hover { border-color: #999; color: #333; background: #f5f5f5; }\r\n\r\n      .mq-bonus-btn {\r\n        width: 100%;\r\n        min-height: 56px;\r\n        text-transform: uppercase;\r\n        letter-spacing: .04em;\r\n        font-size: 16px;\r\n        font-weight: 900;\r\n        border-radius: 14px;\r\n        background: linear-gradient(135deg, ${CONFIG.BRAND_ACCENT}, #8f9568);\r\n        box-shadow: 0 18px 34px rgba(171,176,135,.38);\r\n        position: relative;\r\n        overflow: hidden;\r\n      }\r\n      .mq-bonus-btn::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        inset: 0;\r\n        background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.28) 45%, transparent 70%);\r\n        transform: translateX(-120%);\r\n        animation: mqShine 2.4s ease-in-out infinite;\r\n      }\r\n\r\n      .mq-cards { display: grid; gap: 12px; margin-top: 12px; }\r\n      .mq-card { border: 1px solid #eee; border-radius: 12px; padding: 16px; background: #fafafa; }\r\n      .mq-card h4 { margin: 0 0 6px; font-size: 16px; font-weight: 600; }\r\n      .mq-card p { font-size: 14px; margin: 0 0 10px; }\r\n      .mq-more {\r\n        border: 0;\r\n        padding: 0;\r\n        background: transparent;\r\n        color: ${CONFIG.BRAND_ACCENT};\r\n        font-weight: 750;\r\n        cursor: pointer;\r\n        font-size: 13px;\r\n      }\r\n      .mq-more:hover { color: #8f9568; text-decoration: underline; }\r\n\r\n      .mq-loading { padding: 40px; text-align: center; color: #666; }\r\n\r\n\r\n      \/* ===== Personaalne PDF tulemuste ekraanil ===== *\/\r\n\r\n      .mq-pdf {\r\n        margin-top: 22px;\r\n        padding: 18px;\r\n        border-radius: 16px;\r\n        border: 1px solid rgba(171,176,135,.34);\r\n        background:\r\n          linear-gradient(135deg, rgba(171,176,135,.10), rgba(255,255,255,0) 70%),\r\n          #fbfcfa;\r\n      }\r\n\r\n      .mq-pdf-head {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 12px;\r\n        margin-bottom: 10px;\r\n      }\r\n\r\n      .mq-pdf-ico {\r\n        width: 44px;\r\n        height: 44px;\r\n        flex: 0 0 auto;\r\n        display: grid;\r\n        place-items: center;\r\n        border-radius: 13px;\r\n        background: #fff;\r\n        border: 1px solid rgba(171,176,135,.30);\r\n        color: #747a46;\r\n      }\r\n\r\n      .mq-pdf-ico svg { width: 23px; height: 23px; }\r\n\r\n      .mq-pdf-kicker {\r\n        font-size: 10px;\r\n        font-weight: 900;\r\n        letter-spacing: .14em;\r\n        text-transform: uppercase;\r\n        color: #8d9169;\r\n      }\r\n\r\n      .mq-pdf-title {\r\n        font-size: 17px;\r\n        font-weight: 900;\r\n        color: #2c2a26;\r\n        line-height: 1.18;\r\n      }\r\n\r\n      .mq-pdf-text {\r\n        margin: 0 0 14px !important;\r\n        font-size: 14px !important;\r\n        line-height: 1.45 !important;\r\n        color: #6b6965;\r\n      }\r\n\r\n      .mq-pdf-btn {\r\n        width: 100%;\r\n        min-height: 52px;\r\n        border-radius: 12px;\r\n        font-size: 16px;\r\n        font-weight: 900;\r\n      }\r\n\r\n      .mq-pdf-btn[disabled] {\r\n        opacity: .65;\r\n        cursor: progress;\r\n      }\r\n\r\n      .mq-pdf-mail { margin-top: 14px; }\r\n\r\n      .mq-pdf-mail label {\r\n        display: block;\r\n        margin-bottom: 6px;\r\n        font-size: 12.5px;\r\n        color: #8a8884;\r\n      }\r\n\r\n      .mq-pdf-field {\r\n        display: block;\r\n        width: 100%;\r\n        margin-bottom: 8px;\r\n        padding: 12px 14px;\r\n        border: 1px solid #e2e2da;\r\n        border-radius: 10px;\r\n        font-size: 14px;\r\n        font-family: inherit;\r\n        background: #fff;\r\n        outline: none;\r\n      }\r\n\r\n      .mq-pdf-field:focus { border-color: ${CONFIG.BRAND_ACCENT}; }\r\n\r\n      \/* \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u043d\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f *\/\r\n      .mq-pdf-field.mq-invalid {\r\n        border-color: #b4553f;\r\n        background: #fdf6f4;\r\n      }\r\n\r\n      .mq-pdf-send {\r\n        width: 100%;\r\n        min-height: 46px;\r\n        margin-top: 2px;\r\n      }\r\n\r\n      .mq-pdf-req {\r\n        margin-top: 8px;\r\n        font-size: 11.5px;\r\n        color: #9a9890;\r\n      }\r\n\r\n      .mq-pdf-note {\r\n        margin-top: 7px;\r\n        font-size: 12.5px;\r\n        min-height: 17px;\r\n        line-height: 1.35;\r\n      }\r\n\r\n      @media (max-width: 480px) {\r\n        .mq-pdf { padding: 15px; }\r\n      }\r\n\r\n\r\n\r\n      .mq-bonus-step h2 {\r\n        font-size: clamp(30px, 4vw, 42px);\r\n        line-height: 1.08;\r\n        letter-spacing: -0.045em;\r\n        margin-bottom: 14px;\r\n        color: #10100f;\r\n      }\r\n\r\n      .mq-bonus-kicker {\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 10px;\r\n        margin: 0 0 12px;\r\n        color: #747a46;\r\n        font-weight: 900;\r\n        font-size: 18px;\r\n      }\r\n      .mq-bonus-kicker svg {\r\n        width: 34px;\r\n        height: 34px;\r\n        flex: 0 0 auto;\r\n      }\r\n\r\n      .mq-bonus-lead {\r\n        font-size: 18px;\r\n        line-height: 1.45;\r\n        color: #45433f;\r\n        margin: 0 0 22px;\r\n      }\r\n      .mq-bonus-lead b {\r\n        color: #747a46;\r\n        font-weight: 950;\r\n      }\r\n\r\n      .mq-bonus-ticket {\r\n        position: relative;\r\n        display: grid;\r\n        grid-template-columns: 150px minmax(0, 1fr);\r\n        gap: 22px;\r\n        align-items: center;\r\n        margin: 24px 0 30px;\r\n        padding: 24px 24px;\r\n        border-radius: 18px;\r\n        background:\r\n          radial-gradient(circle at 8% 22%, rgba(171,176,135,.13), transparent 28%),\r\n          linear-gradient(135deg, #ffffff 0%, #fbfbf7 100%);\r\n        border: 1px solid rgba(44,42,38,.11);\r\n        box-shadow: 0 18px 46px rgba(44,42,38,.08);\r\n        overflow: hidden;\r\n        isolation: isolate;\r\n      }\r\n\r\n      .mq-bonus-ticket::before {\r\n        content: \"\";\r\n        position: absolute;\r\n        inset: 0;\r\n        background:\r\n          linear-gradient(90deg, transparent 0, transparent 150px, rgba(44,42,38,.10) 150px, rgba(44,42,38,.10) 151px, transparent 151px),\r\n          radial-gradient(circle at 150px 0, rgba(244,246,245,1) 0 15px, transparent 16px),\r\n          radial-gradient(circle at 150px 100%, rgba(244,246,245,1) 0 15px, transparent 16px);\r\n        pointer-events: none;\r\n        z-index: 0;\r\n      }\r\n\r\n      .mq-bonus-ticket::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        inset: 0;\r\n        background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,.62) 43%, transparent 62%);\r\n        transform: translateX(-120%);\r\n        animation: mqTicketShine 4s ease-in-out infinite;\r\n        pointer-events: none;\r\n        z-index: 1;\r\n      }\r\n\r\n      .mq-ticket-art,\r\n      .mq-ticket-copy,\r\n      .mq-ticket-note {\r\n        position: relative;\r\n        z-index: 2;\r\n      }\r\n\r\n      .mq-ticket-art {\r\n        min-height: 145px;\r\n        display: grid;\r\n        place-items: center;\r\n      }\r\n\r\n      .mq-gift-svg {\r\n        width: 124px;\r\n        max-width: 100%;\r\n        height: auto;\r\n        overflow: visible;\r\n      }\r\n\r\n      .mq-gift-orb {\r\n        animation: mqSoftPulse 3.2s ease-in-out infinite;\r\n        transform-origin: 50% 50%;\r\n      }\r\n      .mq-gift-box {\r\n        animation: mqGiftFloat 3.6s ease-in-out infinite;\r\n        transform-origin: 50% 55%;\r\n      }\r\n      .mq-gift-sparkle {\r\n        animation: mqSparkle 2.2s ease-in-out infinite;\r\n        transform-origin: center;\r\n      }\r\n      .mq-gift-sparkle:nth-of-type(2) { animation-delay: .35s; }\r\n      .mq-gift-sparkle:nth-of-type(3) { animation-delay: .7s; }\r\n\r\n      .mq-bonus-label {\r\n        display: inline-flex;\r\n        align-items: center;\r\n        padding: 7px 18px;\r\n        border-radius: 999px;\r\n        background: linear-gradient(135deg, #747a46, #8f9568);\r\n        color: #fff;\r\n        font-weight: 950;\r\n        letter-spacing: .08em;\r\n        text-transform: uppercase;\r\n        font-size: 13px;\r\n        margin-bottom: 14px;\r\n        box-shadow: 0 10px 20px rgba(116,122,70,.20);\r\n      }\r\n\r\n      .mq-bonus-title {\r\n        margin: 0 0 12px;\r\n        color: #747a46;\r\n        font-size: clamp(28px, 4vw, 38px);\r\n        font-weight: 1000;\r\n        line-height: 1;\r\n        letter-spacing: -0.055em;\r\n        text-transform: uppercase;\r\n        overflow-wrap: anywhere;\r\n      }\r\n\r\n      .mq-bonus-text {\r\n        margin: 0;\r\n        color: #3f3d39;\r\n        font-size: 17px;\r\n        line-height: 1.34;\r\n        max-width: 520px;\r\n      }\r\n\r\n      .mq-ticket-note {\r\n        display: none;\r\n        align-self: center;\r\n        text-align: center;\r\n        color: #747a46;\r\n        font-size: 28px;\r\n        line-height: 1.24;\r\n        font-weight: 500;\r\n        font-style: italic;\r\n        transform: rotate(-5deg);\r\n        opacity: .92;\r\n      }\r\n\r\n      .mq-ticket-note svg {\r\n        width: 82px;\r\n        height: 42px;\r\n        display: block;\r\n        margin: 6px auto 0;\r\n        overflow: visible;\r\n      }\r\n\r\n      .mq-heart-path {\r\n        stroke-dasharray: 150;\r\n        stroke-dashoffset: 150;\r\n        animation: mqDrawHeart 3.2s ease-in-out infinite;\r\n      }\r\n\r\n      .mq-benefits-title {\r\n        margin: 4px 0 14px;\r\n        color: #121210;\r\n        font-size: 19px;\r\n        font-weight: 950;\r\n      }\r\n\r\n      .mq-benefits {\r\n        display: grid;\r\n        grid-template-columns: repeat(3, minmax(0, 1fr));\r\n        gap: 0;\r\n        margin: 0 0 22px;\r\n        border-radius: 18px;\r\n        background: #fff;\r\n        border: 1px solid rgba(44,42,38,.07);\r\n        box-shadow: 0 10px 24px rgba(44,42,38,.04);\r\n        overflow: hidden;\r\n      }\r\n\r\n      .mq-benefit {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 10px;\r\n        align-items: center;\r\n        justify-content: flex-start;\r\n        text-align: center;\r\n        padding: 16px 12px 18px;\r\n        border-right: 1px solid rgba(44,42,38,.08);\r\n        min-width: 0;\r\n      }\r\n      .mq-benefit:last-child {\r\n        border-right: 0;\r\n      }\r\n\r\n      .mq-benefit-icon {\r\n        position: relative;\r\n        flex: 0 0 auto;\r\n        display: grid;\r\n        place-items: center;\r\n        width: 56px;\r\n        height: 56px;\r\n        border-radius: 50%;\r\n        background: rgba(171,176,135,.11);\r\n        margin-bottom: 2px;\r\n      }\r\n\r\n      .mq-benefit-icon svg {\r\n        width: 33px;\r\n        height: 33px;\r\n        overflow: visible;\r\n      }\r\n\r\n      .mq-benefit-icon .mq-icon-stroke {\r\n        stroke: #747a46;\r\n        stroke-width: 2.2;\r\n        fill: none;\r\n        stroke-linecap: round;\r\n        stroke-linejoin: round;\r\n      }\r\n\r\n      .mq-benefit b {\r\n        display: block;\r\n        color: #151512;\r\n        font-size: 15px;\r\n        line-height: 1.16;\r\n        margin-bottom: 4px;\r\n        font-weight: 950;\r\n        overflow-wrap: anywhere;\r\n      }\r\n\r\n      .mq-benefit span {\r\n        display: block;\r\n        color: #4f4d48;\r\n        font-size: 14px;\r\n        line-height: 1.25;\r\n        overflow-wrap: anywhere;\r\n      }\r\n\r\n      .mq-bonus-main-btn {\r\n        width: 100%;\r\n        min-height: 70px;\r\n        border-radius: 14px;\r\n        font-size: 20px;\r\n        font-weight: 1000;\r\n        text-transform: uppercase;\r\n        letter-spacing: .04em;\r\n        background: linear-gradient(135deg, #747a46, #8f9568) !important;\r\n        box-shadow: 0 18px 34px rgba(116,122,70,.33), inset 0 1px 0 rgba(255,255,255,.24);\r\n        position: relative;\r\n        overflow: hidden;\r\n      }\r\n\r\n      .mq-bonus-main-btn::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        inset: 0;\r\n        background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.22) 45%, transparent 62%);\r\n        transform: translateX(-120%);\r\n        animation: mqBtnShine 2.7s ease-in-out infinite;\r\n      }\r\n\r\n      .mq-bonus-main-btn .mq-btn-icon,\r\n      .mq-bonus-main-btn .mq-btn-text {\r\n        position: relative;\r\n        z-index: 1;\r\n      }\r\n\r\n      .mq-bonus-main-btn .mq-btn-icon {\r\n        display: inline-flex;\r\n        margin-right: 12px;\r\n        width: 24px;\r\n        height: 24px;\r\n      }\r\n\r\n      .mq-bonus-main-btn .mq-btn-icon svg {\r\n        width: 24px;\r\n        height: 24px;\r\n      }\r\n\r\n      \/* Teine tee: otsebroneering Altegios.\r\n         Teadlikult heledam kui peamine nupp \u2014 ei konkureeri, aga on selgelt klikitav. *\/\r\n      .mq-book-btn {\r\n        width: 100%;\r\n        min-height: 62px;\r\n        margin-top: 12px;\r\n        border-radius: 14px;\r\n        font-size: 17px;\r\n        font-weight: 950;\r\n        text-transform: uppercase;\r\n        letter-spacing: .03em;\r\n        background: #fff;\r\n        color: #5f653f !important;\r\n        border: 2px solid #747a46;\r\n        box-shadow: 0 10px 22px rgba(116,122,70,.14);\r\n      }\r\n\r\n      .mq-book-btn:hover {\r\n        background: #747a46;\r\n        color: #fff !important;\r\n        transform: translateY(-1px);\r\n        box-shadow: 0 16px 30px rgba(116,122,70,.26);\r\n      }\r\n\r\n      .mq-book-btn .mq-btn-icon {\r\n        display: inline-flex;\r\n        margin-right: 12px;\r\n        width: 22px;\r\n        height: 22px;\r\n      }\r\n\r\n      .mq-book-btn .mq-btn-icon svg {\r\n        width: 22px;\r\n        height: 22px;\r\n      }\r\n\r\n      .mq-book-note {\r\n        margin: 10px 0 0;\r\n        text-align: center;\r\n        font-size: 13px;\r\n        color: #8a8884;\r\n      }\r\n\r\n      .mq-save-row {\r\n        display: flex;\r\n        gap: 14px;\r\n        align-items: flex-start;\r\n        margin-top: 26px;\r\n        padding-top: 20px;\r\n        border-top: 1px solid #eee;\r\n        color: #777;\r\n      }\r\n\r\n      .mq-save-shield {\r\n        display: grid;\r\n        place-items: center;\r\n        width: 42px;\r\n        height: 42px;\r\n        border-radius: 14px;\r\n        background: rgba(171,176,135,.10);\r\n        flex: 0 0 auto;\r\n      }\r\n\r\n      .mq-save-shield svg {\r\n        width: 28px;\r\n        height: 28px;\r\n      }\r\n\r\n      .mq-copy-btn {\r\n        font-size: 13px;\r\n        text-transform: uppercase;\r\n        letter-spacing: .03em;\r\n        font-weight: 850;\r\n      }\r\n\r\n      @keyframes mqTicketShine {\r\n        0%, 45% { transform: translateX(-125%); }\r\n        72%, 100% { transform: translateX(125%); }\r\n      }\r\n      @keyframes mqBtnShine {\r\n        0%, 35% { transform: translateX(-125%); }\r\n        70%, 100% { transform: translateX(125%); }\r\n      }\r\n      @keyframes mqSoftPulse {\r\n        0%, 100% { transform: scale(1); opacity: .9; }\r\n        50% { transform: scale(1.05); opacity: 1; }\r\n      }\r\n      @keyframes mqGiftFloat {\r\n        0%, 100% { transform: translateY(0) rotate(0deg); }\r\n        50% { transform: translateY(-5px) rotate(-1deg); }\r\n      }\r\n      @keyframes mqSparkle {\r\n        0%, 100% { transform: scale(.75); opacity: .35; }\r\n        50% { transform: scale(1.18); opacity: 1; }\r\n      }\r\n      @keyframes mqDrawHeart {\r\n        0% { stroke-dashoffset: 150; opacity: .25; }\r\n        45% { stroke-dashoffset: 0; opacity: 1; }\r\n        75% { stroke-dashoffset: 0; opacity: 1; }\r\n        100% { stroke-dashoffset: -150; opacity: .25; }\r\n      }\r\n\r\n\r\n      @media (max-width: 900px) {\r\n        .mq-benefits {\r\n          grid-template-columns: repeat(3, minmax(0, 1fr));\r\n        }\r\n        .mq-benefit {\r\n          padding: 14px 10px 16px;\r\n        }\r\n        .mq-benefit-icon {\r\n          width: 50px;\r\n          height: 50px;\r\n        }\r\n        .mq-benefit-icon svg {\r\n          width: 29px;\r\n          height: 29px;\r\n        }\r\n        .mq-benefit b {\r\n          font-size: 14px;\r\n        }\r\n        .mq-benefit span {\r\n          font-size: 13px;\r\n        }\r\n        .mq-bonus-title {\r\n          font-size: 32px;\r\n        }\r\n        .mq-bonus-main-btn {\r\n          font-size: 18px;\r\n        }\r\n        .mq-book-btn {\r\n          font-size: 16px;\r\n        }\r\n      }\r\n\r\n\r\n      @media (max-width: 560px) {\r\n        .mq-benefits {\r\n          grid-template-columns: 1fr;\r\n        }\r\n        .mq-benefit {\r\n          border-right: 0;\r\n          border-bottom: 1px solid rgba(44,42,38,.08);\r\n        }\r\n        .mq-benefit:last-child {\r\n          border-bottom: 0;\r\n        }\r\n      }\r\n\r\n      @media (max-width: 620px) {\r\n        .mq-bonus-ticket {\r\n          grid-template-columns: 1fr;\r\n          gap: 14px;\r\n          text-align: center;\r\n          padding: 24px 18px;\r\n        }\r\n        .mq-bonus-ticket::before {\r\n          background:\r\n            linear-gradient(180deg, transparent 0, transparent 150px, rgba(44,42,38,.10) 150px, rgba(44,42,38,.10) 151px, transparent 151px),\r\n            radial-gradient(circle at 0 151px, rgba(244,246,245,1) 0 17px, transparent 18px),\r\n            radial-gradient(circle at 100% 151px, rgba(244,246,245,1) 0 17px, transparent 18px);\r\n        }\r\n        .mq-ticket-art { min-height: 130px; }\r\n        .mq-gift-svg { width: 132px; }\r\n        .mq-ticket-note { display: none; }\r\n        .mq-bonus-text { margin: 0 auto; font-size: 17px; }\r\n        .mq-benefits { grid-template-columns: 1fr; }\r\n        .mq-benefit {\r\n          border-right: 0;\r\n          border-bottom: 1px solid rgba(44,42,38,.08);\r\n        }\r\n        .mq-benefit:last-child { border-bottom: 0; }\r\n        .mq-bonus-main-btn {\r\n          min-height: 62px;\r\n          font-size: 16px;\r\n        }\r\n        .mq-book-btn {\r\n          min-height: 56px;\r\n          font-size: 14px;\r\n          letter-spacing: .02em;\r\n        }\r\n      }\r\n\r\n      @media (prefers-reduced-motion: reduce) {\r\n        .mq-bonus-ticket::after,\r\n        .mq-bonus-main-btn::after,\r\n        .mq-gift-orb,\r\n        .mq-gift-box,\r\n        .mq-gift-sparkle,\r\n        .mq-heart-path {\r\n          animation: none !important;\r\n        }\r\n      }\r\n\r\n      .mq-cf7 .wpcf7 form { margin-top: 10px; }\r\n      .mq-cf7 label { display:block; font-weight:600; margin: 12px 0 6px; color:#333; }\r\n      .mq-cf7 input[type=\"text\"],\r\n      .mq-cf7 input[type=\"tel\"],\r\n      .mq-cf7 input[type=\"email\"],\r\n      .mq-cf7 input[type=\"date\"],\r\n      .mq-cf7 textarea {\r\n        width:100%;\r\n        padding: 12px 14px !important;\r\n        border-radius: 12px;\r\n        border: 1px solid #ddd;\r\n        font-size: 15px;\r\n        outline: none;\r\n        box-sizing: border-box;\r\n      }\r\n      .mq-cf7 textarea { min-height: 110px; resize: vertical; }\r\n      .mq-cf7 input:focus, .mq-cf7 textarea:focus { border-color: ${CONFIG.BRAND_ACCENT}; }\r\n      .mq-cf7 input[type=\"submit\"], .mq-cf7 button, .mq-cf7 .wpcf7-submit {\r\n        background: ${CONFIG.BRAND_ACCENT};\r\n        color:#fff;\r\n        border:0;\r\n        padding: 12px 18px;\r\n        border-radius: 10px;\r\n        font-weight: 700;\r\n        cursor:pointer;\r\n      }\r\n\r\n      .mq-mini-overlay {\r\n        position: absolute;\r\n        inset: 0;\r\n        z-index: 5;\r\n        display: none;\r\n        align-items: center;\r\n        justify-content: center;\r\n        background: rgba(44,42,38,.44);\r\n        padding: 18px;\r\n      }\r\n      .mq-mini-overlay.is-open { display: flex; }\r\n      .mq-mini-card {\r\n        width: min(100%, 520px);\r\n        max-height: 78vh;\r\n        overflow: auto;\r\n        border-radius: 16px;\r\n        background: #fff;\r\n        padding: 22px;\r\n        box-shadow: 0 20px 45px rgba(0,0,0,.22);\r\n        animation: mqSlideUp .22s ease;\r\n      }\r\n      .mq-mini-card h3 { margin: 0 0 10px; color: ${CONFIG.BRAND_INK}; }\r\n      .mq-mini-card p { margin: 0 0 16px; }\r\n      .mq-mini-close { width: 100%; }\r\n\r\n      @keyframes mqFadeIn { from { opacity: 0; } to { opacity: 1; } }\r\n      @keyframes mqSlideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }\r\n      @keyframes mqShine { 0% { transform: translateX(-120%); } 55%, 100% { transform: translateX(120%); } }\r\n    `;\r\n\r\n    let state = { step: 0, answers: {}, rec: null };\r\n    const STEPS_COUNT = 10;\r\n\r\n    function injectStyles() {\r\n      if (document.getElementById('mq-css')) return;\r\n      const style = document.createElement('style');\r\n      style.id = 'mq-css';\r\n      style.textContent = CSS;\r\n      document.head.appendChild(style);\r\n    }\r\n\r\n    function createModal() {\r\n      if (document.getElementById('meliorQuizOverlay')) return;\r\n\r\n      const div = document.createElement('div');\r\n      div.id = 'meliorQuizOverlay';\r\n      div.innerHTML = `\r\n        <div class=\"mq-backdrop\" data-mq-close><\/div>\r\n        <div class=\"mq-modal\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Melior Quiz\">\r\n          <div class=\"mq-head\">\r\n            <div class=\"mq-brand\">Melior \u2022 Testi<\/div>\r\n            <button class=\"mq-close\" data-mq-close aria-label=\"${escHtml(UI.close)}\">\u00d7<\/button>\r\n            <div class=\"mq-progress-track\"><div class=\"mq-progress-fill\" id=\"mqBar\"><\/div><\/div>\r\n          <\/div>\r\n          <div class=\"mq-body\" id=\"mqContent\"><\/div>\r\n          <div class=\"mq-mini-overlay\" id=\"mqDetailsOverlay\" aria-hidden=\"true\">\r\n            <div class=\"mq-mini-card\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Hoidon tiedot\">\r\n              <h3 id=\"mqDetailsTitle\"><\/h3>\r\n              <p id=\"mqDetailsText\"><\/p>\r\n              <button class=\"mq-btn mq-btn-primary mq-mini-close\" type=\"button\" onclick=\"window.mqCloseDetails()\">Sulge<\/button>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      `;\r\n      document.body.appendChild(div);\r\n\r\n      div.addEventListener('click', (e) => {\r\n        if (e.target && e.target.matches('[data-mq-close]')) closeQuiz();\r\n        if (e.target && e.target.id === 'mqDetailsOverlay') window.mqCloseDetails();\r\n      });\r\n\r\n      document.addEventListener('keydown', (e) => {\r\n        if (e.key === 'Escape') {\r\n          const details = document.getElementById('mqDetailsOverlay');\r\n          if (details && details.classList.contains('is-open')) window.mqCloseDetails();\r\n          else closeQuiz();\r\n        }\r\n      });\r\n    }\r\n\r\n    function updateProgress() {\r\n      const bar = document.getElementById('mqBar');\r\n      if (!bar) return;\r\n      const pct = Math.min(100, (state.step \/ STEPS_COUNT) * 100);\r\n      bar.style.width = (state.step === 0 ? 0 : Math.max(10, pct)) + '%';\r\n    }\r\n\r\n    function render() {\r\n      const box = document.getElementById('mqContent');\r\n      if (!box) return;\r\n\r\n      if (state.step !== 9) unmountCf7();\r\n\r\n      box.scrollTop = 0;\r\n      box.innerHTML = '';\r\n      updateProgress();\r\n\r\n      const wrapper = document.createElement('div');\r\n      wrapper.className = 'mq-step-anim';\r\n      box.appendChild(wrapper);\r\n\r\n      if (state.step === 0) {\r\n        wrapper.innerHTML = `\r\n          <h2>${escHtml(UI.introTitle)}<\/h2>\r\n          <p>${escHtml(UI.introSub)}<\/p>\r\n          <div class=\"mq-actions\">\r\n            <button class=\"mq-btn mq-btn-primary\" onclick=\"window.mqNext()\" style=\"width:100%\">\r\n              ${escHtml(UI.startBtn)}\r\n            <\/button>\r\n          <\/div>\r\n        `;\r\n        return;\r\n      }\r\n\r\n      if (state.step <= 5) {\r\n        let title, opts, key;\r\n        if (state.step === 1) { title = UI.q1Title; opts = UI.q1Options; key = 'zone'; }\r\n        if (state.step === 2) { title = UI.q2Title; opts = getProblemOptions(state.answers.zone); key = 'problem'; }\r\n        if (state.step === 3) { title = UI.q3Title; opts = UI.q3Options; key = 'experience'; }\r\n        if (state.step === 4) { title = UI.q4Title; opts = UI.q4Options; key = 'priority'; }\r\n        if (state.step === 5) { title = UI.q5Title; opts = UI.q5Options; key = 'format'; }\r\n\r\n        const currentVal = state.answers[key];\r\n        const isOther = (currentVal === 'other');\r\n\r\n        wrapper.innerHTML = `\r\n          <h2>${escHtml(title)}<\/h2>\r\n          <div class=\"mq-grid\">\r\n            ${opts.map(o => `\r\n              <div class=\"mq-option ${currentVal === o.value ? 'mq-selected' : ''}\"\r\n                   onclick=\"window.mqAnswer('${escHtml(key)}','${escHtml(o.value)}')\">\r\n                ${escHtml(o.label)}\r\n                <div class=\"mq-check\"><\/div>\r\n              <\/div>\r\n            `).join('')}\r\n          <\/div>\r\n          ${isOther ? `\r\n            <div style=\"margin-top:15px; animation: mqFadeIn 0.3s\">\n              <input class=\"mq-input\" placeholder=\"Kerro tarkemmin...\"\n                     value=\"${escHtml(state.answers.otherText || '')}\"\n                     oninput=\"window.mqOther(this.value)\" autofocus>\n            <\/div>\r\n          ` : ''}\r\n          <div class=\"mq-actions\">\r\n            ${isOther ? `<button class=\"mq-btn mq-btn-primary\" onclick=\"window.mqNext()\">Jatka<\/button>` : ''}\r\n            <button class=\"mq-btn mq-btn-ghost\" onclick=\"window.mqBack()\">${escHtml(UI.back)}<\/button>\r\n          <\/div>\r\n        `;\r\n        return;\r\n      }\r\n\r\n      if (state.step === 6) {\r\n        wrapper.innerHTML = `<div class=\"mq-loading\"><h3>\u23f3 ${escHtml(UI.loadingTitle)}<\/h3><\/div>`;\r\n        setTimeout(() => {\r\n          state.rec = buildRecommendation(state);\r\n          try {\r\n            localStorage.setItem(CONFIG.STORAGE_KEY, JSON.stringify({\r\n              ts: Date.now(),\r\n              answers: state.answers,\r\n              rec: state.rec\r\n            }));\r\n          } catch (e) {}\r\n          state.step = 7;\r\n          render();\r\n        }, CONFIG.LOADING_MS);\r\n        return;\r\n      }\r\n\r\n      if (state.step === 7) {\r\n        const rec = state.rec || buildRecommendation(state);\r\n        wrapper.innerHTML = `\r\n          <h2>${escHtml(UI.resultTitle)}<\/h2>\r\n          <p>${escHtml(UI.resultDisclaimer)}<\/p>\r\n          ${rec.note ? `<p style=\"background:#fff4e5;padding:10px;border-radius:8px;font-size:13px\">${escHtml(rec.note)}<\/p>` : ''}\r\n          <div class=\"mq-cards\">\r\n            ${(rec.directions || []).map((d, idx) => `\r\n              <div class=\"mq-card\">\r\n                <h4>${escHtml(d.title)}<\/h4>\r\n                <p>${escHtml(d.desc)}<\/p>\r\n                <button class=\"mq-more\" type=\"button\" onclick=\"window.mqShowProcedure(${idx})\">${escHtml(UI.details)} \u2192<\/button>\r\n              <\/div>\r\n            `).join('')}\r\n          <\/div>\r\n          <div class=\"mq-pdf\">\r\n            <div class=\"mq-pdf-head\">\r\n              <span class=\"mq-pdf-ico\" aria-hidden=\"true\">\r\n                <svg viewBox=\"0 0 32 32\">\r\n                  <path d=\"M9 3h10l6 6v20H9z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linejoin=\"round\"><\/path>\r\n                  <path d=\"M19 3v6h6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linejoin=\"round\"><\/path>\r\n                  <path d=\"M16 14v8m0 0l-3.5-3.5M16 22l3.5-3.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\r\n                <\/svg>\r\n              <\/span>\r\n              <div>\r\n                <div class=\"mq-pdf-kicker\">${escHtml(UI.pdfKicker)}<\/div>\r\n                <div class=\"mq-pdf-title\">${escHtml(UI.pdfTitle)}<\/div>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <p class=\"mq-pdf-text\">${escHtml(UI.pdfText)}<\/p>\r\n\r\n            <div class=\"mq-pdf-mail\">\r\n              <label for=\"mqPdfName\">${escHtml(UI.pdfMailLabel)}<\/label>\r\n\r\n              <input class=\"mq-pdf-field\" id=\"mqPdfName\" type=\"text\"\r\n                     autocomplete=\"name\" required\r\n                     placeholder=\"${escHtml(UI.pdfNamePh)}\">\r\n\r\n              <input class=\"mq-pdf-field\" id=\"mqPdfPhone\" type=\"tel\" inputmode=\"tel\"\r\n                     autocomplete=\"tel\" required\r\n                     placeholder=\"${escHtml(UI.pdfPhonePh)}\">\r\n\r\n              <input class=\"mq-pdf-field\" id=\"mqPdfMail\" type=\"email\" inputmode=\"email\"\r\n                     autocomplete=\"email\"\r\n                     placeholder=\"${escHtml(UI.pdfMailPh)}\">\r\n\r\n              <button class=\"mq-btn mq-btn-primary mq-pdf-btn\" type=\"button\"\r\n                      onclick=\"window.mqGetPdf(this)\">${escHtml(UI.pdfBtn)}<\/button>\r\n\r\n              <button class=\"mq-btn mq-btn-ghost mq-pdf-send\" type=\"button\"\r\n                      onclick=\"window.mqMailPdf(this)\">${escHtml(UI.pdfMailBtn2)}<\/button>\r\n\r\n              <div class=\"mq-pdf-req\">${escHtml(UI.pdfRegNote)}<\/div>\r\n              <div class=\"mq-pdf-note\"><\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"mq-actions\" style=\"margin-top:24px; border-top:1px solid #eee; padding-top:20px\">\r\n            <button class=\"mq-btn mq-btn-primary mq-bonus-btn\" onclick=\"window.mqNext()\">${escHtml(UI.ctaNext)}<\/button>\r\n          <\/div>\r\n          <div style=\"text-align:center; margin-top:10px\">\r\n            <button class=\"mq-btn mq-btn-ghost\" style=\"border:none; color:#bbb\" onclick=\"window.mqStep(5)\">${escHtml(UI.back)}<\/button>\r\n          <\/div>\r\n        `;\r\n        return;\r\n      }\r\n\r\n      if (state.step === 8) {\r\n        const summary = makeSummaryText(state);\r\n        wrapper.classList.add('mq-bonus-step');\r\n        wrapper.innerHTML = `\r\n          <h2>Seuraava askel \u2014 henkil\u00f6kohtainen bonuksesi<\/h2>\r\n\r\n          <div class=\"mq-bonus-kicker\">\r\n            <svg viewBox=\"0 0 40 40\" aria-hidden=\"true\">\r\n              <circle cx=\"20\" cy=\"20\" r=\"17\" fill=\"rgba(171,176,135,.14)\" stroke=\"rgba(116,122,70,.28)\" stroke-width=\"1.5\"><\/circle>\r\n              <path d=\"M20 10v11l7 4\" fill=\"none\" stroke=\"#747a46\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\r\n              <path d=\"M15 5h10\" fill=\"none\" stroke=\"#747a46\" stroke-width=\"3\" stroke-linecap=\"round\"><\/path>\r\n            <\/svg>\r\n            <strong>1 minuutin diagnostiikka<\/strong>\r\n          <\/div>\r\n\r\n          <p class=\"mq-bonus-lead\">\r\n            Kiitos, ett\u00e4 k\u00e4ytit hetken kyselyyn vastaamiseen!<br>\r\n            Kyselyyn vastaamisesta saat <b>henkil\u00f6kohtaisen bonuksen:<\/b>\r\n          <\/p>\r\n\r\n          <div class=\"mq-bonus-ticket\">\r\n            <div class=\"mq-ticket-art\" aria-hidden=\"true\">\r\n              <svg class=\"mq-gift-svg\" viewBox=\"0 0 180 180\">\r\n                <circle class=\"mq-gift-orb\" cx=\"90\" cy=\"94\" r=\"72\" fill=\"rgba(171,176,135,.13)\"><\/circle>\r\n\r\n                <g class=\"mq-gift-sparkle\" fill=\"#747a46\">\r\n                  <path d=\"M40 33l4 9 9 4-9 4-4 9-4-9-9-4 9-4z\"><\/path>\r\n                <\/g>\r\n                <g class=\"mq-gift-sparkle\" fill=\"#747a46\">\r\n                  <path d=\"M138 40l3 7 7 3-7 3-3 7-3-7-7-3 7-3z\"><\/path>\r\n                <\/g>\r\n                <g class=\"mq-gift-sparkle\" fill=\"#747a46\">\r\n                  <path d=\"M33 130l3 7 7 3-7 3-3 7-3-7-7-3 7-3z\"><\/path>\r\n                <\/g>\r\n\r\n                <g class=\"mq-gift-box\" fill=\"none\" stroke=\"#747a46\" stroke-width=\"6\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                  <path d=\"M51 80h78v58H51z\"><\/path>\r\n                  <path d=\"M45 63h90v18H45z\"><\/path>\r\n                  <path d=\"M90 63v75\"><\/path>\r\n                  <path d=\"M69 63c-14-10-16-25-6-29 12-5 22 14 27 29\"><\/path>\r\n                  <path d=\"M111 63c14-10 16-25 6-29-12-5-22 14-27 29\"><\/path>\r\n                <\/g>\r\n              <\/svg>\r\n            <\/div>\r\n\r\n            <div class=\"mq-ticket-copy\">\r\n              <div class=\"mq-bonus-label\">Bonus<\/div>\r\n              <div class=\"mq-bonus-title\">Maksuton diagnostiikka<\/div>\r\n              <p class=\"mq-bonus-text\">\r\n                Henkil\u00f6kohtainen diagnostiikka asiantuntijamme kanssa,\r\n                joka auttaa valitsemaan juuri sinulle sopivat ratkaisut.\r\n              <\/p>\r\n            <\/div>\r\n\r\n            <div class=\"mq-ticket-note\">\r\n              Bonuksesi<br>meilt\u00e4!\r\n              <svg viewBox=\"0 0 110 58\" aria-hidden=\"true\">\r\n                <path class=\"mq-heart-path\" d=\"M55 45 C18 21 28 2 48 17 C53 21 55 27 55 27 C55 27 57 21 62 17 C82 2 92 21 55 45Z\" fill=\"none\" stroke=\"#747a46\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\r\n              <\/svg>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"mq-benefits-title\">Diagnostiikassa saat:<\/div>\r\n\r\n          <div class=\"mq-benefits\">\r\n            <div class=\"mq-benefit\">\r\n              <div class=\"mq-benefit-icon\" aria-hidden=\"true\">\r\n                <svg viewBox=\"0 0 40 40\">\r\n                  <path class=\"mq-icon-stroke\" d=\"M20 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M7 36c2-8 7-12 13-12s11 4 13 12\"><\/path>\r\n                <\/svg>\r\n              <\/div>\r\n              <div>\r\n                <b>Ammattilaisen arvion<\/b>\r\n                <span>ihosi kunnosta<\/span>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"mq-benefit\">\r\n              <div class=\"mq-benefit-icon\" aria-hidden=\"true\">\r\n                <svg viewBox=\"0 0 40 40\">\r\n                  <path class=\"mq-icon-stroke\" d=\"M13 6h14l5 5v23H8V6h5Z\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M27 6v6h5\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M14 18l3 3 6-6\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M14 28l3 3 6-6\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M27 20h4\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M27 30h4\"><\/path>\r\n                <\/svg>\r\n              <\/div>\r\n              <div>\r\n                <b>Suositukset<\/b>\r\n                <span>sinulle sopivista hoidoista<\/span>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"mq-benefit\">\r\n              <div class=\"mq-benefit-icon\" aria-hidden=\"true\">\r\n                <svg viewBox=\"0 0 40 40\">\r\n                  <circle class=\"mq-icon-stroke\" cx=\"20\" cy=\"20\" r=\"14\"><\/circle>\r\n                  <circle class=\"mq-icon-stroke\" cx=\"20\" cy=\"20\" r=\"8\"><\/circle>\r\n                  <circle cx=\"20\" cy=\"20\" r=\"2.8\" fill=\"#747a46\"><\/circle>\r\n                  <path class=\"mq-icon-stroke\" d=\"M24 16l8-8\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M31 8h-6\"><\/path>\r\n                  <path class=\"mq-icon-stroke\" d=\"M32 8v6\"><\/path>\r\n                <\/svg>\r\n              <\/div>\r\n              <div>\r\n                <b>Henkil\u00f6kohtaisen kauneussuunnitelman<\/b>\r\n                <span>seuraavia askeleita varten<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"mq-actions\">\r\n            <button class=\"mq-btn mq-btn-primary mq-bonus-main-btn\" onclick=\"window.mqNext()\">\r\n              <span class=\"mq-btn-icon\" aria-hidden=\"true\">\r\n                <svg viewBox=\"0 0 28 28\">\r\n                  <rect x=\"5\" y=\"7\" width=\"18\" height=\"16\" rx=\"3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"><\/rect>\r\n                  <path d=\"M9 4v6M19 4v6M5 12h18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><\/path>\r\n                <\/svg>\r\n              <\/span>\r\n              <span class=\"mq-btn-text\">${escHtml(UI.ctaNext)}<\/span>\r\n            <\/button>\r\n\r\n            <a class=\"mq-btn mq-book-btn\"\r\n               href=\"${escHtml(CONFIG.DIAG_URL)}\"\r\n               target=\"_blank\"\r\n               rel=\"noopener noreferrer\">\r\n              <span class=\"mq-btn-icon\" aria-hidden=\"true\">\r\n                <svg viewBox=\"0 0 28 28\">\r\n                  <rect x=\"4\" y=\"6\" width=\"20\" height=\"18\" rx=\"3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"><\/rect>\r\n                  <path d=\"M9 3v6M19 3v6M4 12h20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"><\/path>\r\n                  <path d=\"M11 17.5l2 2 4.5-4.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\r\n                <\/svg>\r\n              <\/span>\r\n              <span class=\"mq-btn-text\">${escHtml(UI.ctaDiag)}<\/span>\r\n            <\/a>\r\n\r\n            <p class=\"mq-book-note\">${escHtml(UI.ctaBookNote)}<\/p>\r\n          <\/div>\r\n\r\n          <div class=\"mq-save-row\">\r\n            <div class=\"mq-save-shield\" aria-hidden=\"true\">\r\n              <svg viewBox=\"0 0 40 40\">\r\n                <path d=\"M20 4l13 5v9c0 9-5 15-13 18C12 33 7 27 7 18V9l13-5Z\" fill=\"none\" stroke=\"#747a46\" stroke-width=\"2.5\" stroke-linejoin=\"round\"><\/path>\r\n                <path d=\"M14 20l4 4 8-9\" fill=\"none\" stroke=\"#747a46\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\r\n              <\/svg>\r\n            <\/div>\r\n            <div>\r\n              <p style=\"font-size:14px; color:#777; margin:0 0 10px;\">\r\n                ${escHtml(UI.fallbackHint)}\r\n              <\/p>\r\n              <button class=\"mq-btn mq-btn-ghost mq-copy-btn\" onclick=\"window.mqCopy()\">\r\n                ${escHtml(UI.btnCopy)}\r\n              <\/button>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div style=\"text-align:center; margin-top:15px\">\r\n            <button class=\"mq-btn mq-btn-ghost\" style=\"border:none; text-transform:uppercase; font-weight:850;\" onclick=\"window.mqBack()\">${escHtml(UI.back)}<\/button>\r\n          <\/div>\r\n        `;\r\n        window.mqCopy = async () => {\r\n          try {\r\n            await navigator.clipboard.writeText(summary);\r\n            const btn = wrapper.querySelector('.mq-copy-btn');\r\n            if (btn) {\r\n              const old = btn.textContent;\r\n              btn.textContent = 'Kopioitu \u2713';\r\n              setTimeout(() => (btn.textContent = old), 1200);\r\n            }\r\n          } catch (e) {}\r\n        };\r\n        return;\r\n      }\r\n\r\n      if (state.step === 9) {\r\n        wrapper.innerHTML = `\r\n          <h2>${escHtml(UI.formTitle)}<\/h2>\r\n          <p>${escHtml(UI.formSub)}<\/p>\r\n          <div class=\"mq-cf7\" id=\"mqCf7Target\" style=\"margin-top:10px\"><\/div>\r\n          <div class=\"mq-actions\" style=\"margin-top:20px\">\r\n            <button class=\"mq-btn mq-btn-ghost\" onclick=\"window.mqBack()\">${escHtml(UI.back)}<\/button>\r\n          <\/div>\r\n        `;\r\n        const target = wrapper.querySelector('#mqCf7Target');\r\n        const ok = mountCf7Into(target, state);\r\n        if (!ok) {\r\n          target.innerHTML = `\r\n            <div style=\"padding:14px;border:1px solid #eee;border-radius:12px;background:#fafafa\">\r\n              CF7-lomaketta ei l\u00f6ytynyt. Tarkista, ett\u00e4 sivulla on lohko <code>#${escHtml(CONFIG.CF7_MOUNT_ID)}<\/code> ja ett\u00e4 shortcode on render\u00f6ity.\r\n            <\/div>\r\n          `;\r\n        }\r\n        return;\r\n      }\r\n\r\n      if (state.step === 10) {\r\n        wrapper.innerHTML = `\r\n          <h2>${escHtml(UI.thanksTitle)}<\/h2>\r\n          <p>${escHtml(UI.thanksText)}<\/p>\r\n          <div class=\"mq-actions\">\r\n            <button class=\"mq-btn mq-btn-primary\" onclick=\"window.mqClose()\" style=\"width:100%\">\r\n              ${escHtml(UI.closeBtn)}\r\n            <\/button>\r\n          <\/div>\r\n        `;\r\n      }\r\n    }\r\n\r\n    \/* ============================================================\r\n       PERSONAALNE PDF\r\n       Serveripool: melior-quiz-diagnostics.php (functions.php sees).\r\n       Kui seda pole paigaldatud, n\u00e4itab nupp veateadet \u2014\r\n       \u00fclej\u00e4\u00e4nud k\u00fcsimustik t\u00f6\u00f6tab edasi.\r\n    ============================================================ *\/\r\n\r\n    const MQ      = window.MELIOR_QUIZ || {};\r\n    const MQ_LANG = MQ.lang || document.documentElement.lang || 'et';\r\n    const MQ_REST = MQ.rest || '\/wp-json\/melior\/v1\/';\r\n\r\n    \/* ---- \u0414\u0430\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b: \u0438\u043c\u044f + \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b, e-mail \u2014 \u0434\u043b\u044f \u043f\u0438\u0441\u044c\u043c\u0430 ---- *\/\r\n\r\n    function mqReadForm(btn) {\r\n      const row = btn.closest('.mq-pdf-mail');\r\n      if (!row) return null;\r\n\r\n      return {\r\n        row:  row,\r\n        name: row.querySelector('#mqPdfName'),\r\n        tel:  row.querySelector('#mqPdfPhone'),\r\n        mail: row.querySelector('#mqPdfMail'),\r\n        note: row.querySelector('.mq-pdf-note')\r\n      };\r\n    }\r\n\r\n    function mqSetNote(f, text, color) {\r\n      if (!f || !f.note) return;\r\n      f.note.textContent = text;\r\n      f.note.style.color = color;\r\n    }\r\n\r\n    \/* \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u0438\u043b\u0438 null, \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u044f \u043f\u0435\u0440\u0432\u043e\u0435 \u043d\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 *\/\r\n    function mqValidate(f, needEmail) {\r\n      if (!f) return null;\r\n\r\n      [f.name, f.tel, f.mail].forEach(el => el && el.classList.remove('mq-invalid'));\r\n\r\n      const nameVal = f.name ? f.name.value.trim() : '';\r\n      const telVal  = f.tel  ? f.tel.value.trim()  : '';\r\n      const mailVal = f.mail ? f.mail.value.trim() : '';\r\n\r\n      const fail = (el, msg) => {\r\n        mqSetNote(f, msg, '#b4553f');\r\n        if (el) { el.classList.add('mq-invalid'); el.focus(); }\r\n        return null;\r\n      };\r\n\r\n      if (nameVal.length < 2) return fail(f.name, UI.pdfNameBad);\r\n\r\n      \/* \u0442\u0435\u043b\u0435\u0444\u043e\u043d: \u043c\u0438\u043d\u0438\u043c\u0443\u043c 7 \u0446\u0438\u0444\u0440; \u043f\u043b\u044e\u0441, \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0438 \u0434\u0435\u0444\u0438\u0441\u044b \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f *\/\r\n      if (telVal.replace(\/\\D\/g, '').length < 7) return fail(f.tel, UI.pdfPhoneBad);\r\n\r\n      const mailOk = mailVal && mailVal.indexOf('@') !== -1 && mailVal.indexOf('.') !== -1;\r\n\r\n      if (needEmail && !mailOk) return fail(f.mail, UI.pdfMailBad);\r\n\r\n      \/* e-mail \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u0432\u0435\u0434\u0451\u043d \u043a\u0440\u0438\u0432\u043e \u2014 \u043d\u0435 \u0431\u0435\u0440\u0451\u043c *\/\r\n      return { name: nameVal, phone: telVal, email: mailOk ? mailVal : '' };\r\n    }\r\n\r\n    \/* \u0423\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043e\u0442\u0447\u0451\u0442 \u2014 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0451\u0440\u0433\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e *\/\r\n    let mqReport = null;\r\n\r\n    async function mqBuildReport(contact) {\r\n      if (mqReport) return mqReport;\r\n\r\n      \/* NB: \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a X-WP-Nonce \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f.\r\n         \u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 (permission_callback = __return_true),\r\n         \u043d\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043a\u044d\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f: \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0431\u044b\r\n         \u0447\u0443\u0436\u043e\u0439 nonce \u0438 WordPress \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u0431\u044b 403 \u00abCookie check failed\u00bb.\r\n         \u0411\u0435\u0437 nonce WP \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u043c \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430. *\/\r\n      const res = await fetch(MQ_REST + 'quiz-report', {\r\n        method: 'POST',\r\n        headers: { 'Content-Type': 'application\/json' },\r\n        body: JSON.stringify({\r\n          lang:    MQ_LANG,\r\n          answers: state.answers,\r\n          name:    contact ? contact.name  : '',\r\n          phone:   contact ? contact.phone : '',\r\n          email:   contact ? contact.email : ''\r\n        })\r\n      });\r\n\r\n      if (!res.ok) throw new Error('report http ' + res.status);\r\n\r\n      mqReport = await res.json();\r\n\r\n      return mqReport;\r\n    }\r\n\r\n    async function mqMailReport(contact) {\r\n      const res = await fetch(MQ_REST + 'quiz-report-email', {\r\n        method: 'POST',\r\n        headers: { 'Content-Type': 'application\/json' },\r\n        body: JSON.stringify({\r\n          lang:    MQ_LANG,\r\n          name:    contact.name,\r\n          phone:   contact.phone,\r\n          email:   contact.email,\r\n          token:   (mqReport && mqReport.token) ? mqReport.token : '',\r\n          answers: state.answers\r\n        })\r\n      });\r\n\r\n      if (!res.ok) throw new Error('mail http ' + res.status);\r\n\r\n      return res.json();\r\n    }\r\n\r\n    \/* \u0421\u043a\u0430\u0447\u0430\u0442\u044c: \u043d\u0443\u0436\u043d\u044b \u0438\u043c\u044f \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d *\/\r\n    window.mqGetPdf = async (btn) => {\r\n      const f = mqReadForm(btn);\r\n      const contact = mqValidate(f, false);\r\n      if (!contact) return;\r\n\r\n      btn.disabled = true;\r\n      btn.textContent = UI.pdfBtnWait;\r\n      mqSetNote(f, '', '#8a8884');\r\n\r\n      try {\r\n        const rep = await mqBuildReport(contact);\r\n\r\n        \/* \u041e\u043a\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u0432\u0435\u0442\u0430, \u0438\u043d\u0430\u0447\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\r\n           \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0433\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u0438 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 *\/\r\n        window.open(rep.url, '_blank', 'noopener');\r\n\r\n        btn.textContent = UI.pdfBtnReady;\r\n      } catch (e) {\r\n        btn.textContent = UI.pdfErr;\r\n      } finally {\r\n        btn.disabled = false;\r\n        setTimeout(() => { btn.textContent = UI.pdfBtn; }, 4000);\r\n      }\r\n    };\r\n\r\n    \/* \u041f\u0440\u0438\u0441\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u043e\u0447\u0442\u0443: \u0438\u043c\u044f, \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0438 e-mail *\/\r\n    window.mqMailPdf = async (btn) => {\r\n      const f = mqReadForm(btn);\r\n      const contact = mqValidate(f, true);\r\n      if (!contact) return;\r\n\r\n      btn.disabled = true;\r\n      mqSetNote(f, UI.pdfBtnWait, '#8a8884');\r\n\r\n      try {\r\n        await mqBuildReport(contact);\r\n        await mqMailReport(contact);\r\n\r\n        mqSetNote(f, UI.pdfMailOk, '#4a7a56');\r\n      } catch (e) {\r\n        mqSetNote(f, UI.pdfMailErr, '#b4553f');\r\n      } finally {\r\n        btn.disabled = false;\r\n      }\r\n    };\r\n\r\n    window.mqNext = () => { state.step++; render(); };\r\n    window.mqBack = () => { state.step = Math.max(0, state.step - 1); render(); };\r\n    window.mqStep = (s) => { state.step = s; render(); };\r\n\r\n    window.mqAnswer = (k, v) => {\r\n      state.answers[k] = v;\r\n\r\n      \/* vastus muutus \u2014 varem koostatud PDF ei kehti enam *\/\r\n      mqReport = null;\r\n\r\n      if (k === 'zone') {\r\n        state.answers.problem = null;\r\n        state.answers.otherText = '';\r\n      }\r\n      if (v !== 'other') window.mqNext();\r\n      else render();\r\n    };\r\n\r\n    window.mqOther = (v) => {\r\n      state.answers.otherText = v;\r\n      mqReport = null;\r\n    };\r\n\r\n    window.mqShowProcedure = (idx) => {\r\n      const rec = state.rec || buildRecommendation(state);\r\n      const item = rec.directions && rec.directions[idx];\r\n      if (!item) return;\r\n\r\n      const overlay = document.getElementById('mqDetailsOverlay');\r\n      const title = document.getElementById('mqDetailsTitle');\r\n      const text = document.getElementById('mqDetailsText');\r\n      if (!overlay || !title || !text) return;\r\n\r\n      title.textContent = item.title || '';\r\n      text.textContent = item.details || item.desc || '';\r\n      overlay.classList.add('is-open');\r\n      overlay.setAttribute('aria-hidden', 'false');\r\n    };\r\n\r\n    window.mqCloseDetails = () => {\r\n      const overlay = document.getElementById('mqDetailsOverlay');\r\n      if (!overlay) return;\r\n      overlay.classList.remove('is-open');\r\n      overlay.setAttribute('aria-hidden', 'true');\r\n    };\r\n\r\n    function openQuiz() {\r\n      injectStyles();\r\n      createModal();\r\n      const ov = document.getElementById('meliorQuizOverlay');\r\n      ov.classList.add('mq-open');\r\n      document.body.style.overflow = 'hidden';\r\n      state = { step: 0, answers: {}, rec: null };\r\n      mqReport = null;\r\n      render();\r\n    }\r\n\r\n    function closeQuiz() {\r\n      unmountCf7();\r\n      const ov = document.getElementById('meliorQuizOverlay');\r\n      if (ov) ov.classList.remove('mq-open');\r\n      document.body.style.overflow = '';\r\n    }\r\n\r\n    window.mqClose = closeQuiz;\r\n\r\n    document.addEventListener('click', (e) => {\r\n      const btn = e.target && e.target.closest ? e.target.closest('[data-melior-quiz-open]') : null;\r\n      if (btn) {\r\n        e.preventDefault();\r\n        openQuiz();\r\n      }\r\n    });\r\n\r\n    document.addEventListener('wpcf7mailsent', (event) => {\r\n      const ov = document.getElementById('meliorQuizOverlay');\r\n      const box = document.getElementById('mqContent');\r\n      if (!ov || !ov.classList.contains('mq-open')) return;\r\n      if (!box) return;\r\n      if (state.step !== 9) return;\r\n      if (event && event.target && !box.contains(event.target)) return;\r\n      state.step = 10;\r\n      render();\r\n    }, false);\r\n\r\n  })();\r\n  <\/script>\r\n\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Melior Clinics \u2014 Kauneustesti Saage 1 minutiga teada, millised protseduurid sobivad just Teile Vastaa muutamaan kysymykseen, niin saat henkil\u00f6kohtaisen suosituksen<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-59569","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/pages\/59569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/comments?post=59569"}],"version-history":[{"count":3,"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/pages\/59569\/revisions"}],"predecessor-version":[{"id":59588,"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/pages\/59569\/revisions\/59588"}],"wp:attachment":[{"href":"https:\/\/melior.ee\/fi\/wp-json\/wp\/v2\/media?parent=59569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}