{"id":45933,"date":"2025-11-23T08:57:23","date_gmt":"2025-11-22T23:57:23","guid":{"rendered":"https:\/\/ymworks.com\/new\/?page_id=45933"},"modified":"2025-12-05T01:59:30","modified_gmt":"2025-12-04T16:59:30","slug":"import-car-legal-inspection-simulator","status":"publish","type":"page","link":"https:\/\/ymworks.com\/new\/import-car-legal-inspection-simulator\/","title":{"rendered":"\u8f38\u5165\u8eca\u30fb\u5916\u8eca \u8eca\u691c\u8cbb\u7528\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc | \u6700\u77ed1\u5206\u3067Web\u898b\u7a4d\u3082\u308a"},"content":{"rendered":"\n<style>\n#ymworks-intro-section * {\n  box-sizing: border-box;\n}\n\n#ymworks-intro-section {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;\n  max-width: 1200px;\n  margin: 0 auto 40px;\n  padding: 0 20px;\n  color: #333;\n  line-height: 1.8;\n}\n\n#ymworks-intro-section p {\n  margin: 0 0 20px 0;\n  font-size: 16px;\n  line-height: 1.8;\n}\n\n#ymworks-intro-section p > strong {\n  color: #333;\n  font-weight: 600;\n}\n\n.ymworks-features-list strong,\n.ymworks-brands-box strong {\n  color: #059669;\n  font-weight: 600;\n}\n\n#ymworks-intro-section a {\n  color: #333;\n  text-decoration: underline;\n  transition: opacity 0.2s ease;\n}\n\n#ymworks-intro-section a:hover {\n  opacity: 0.7;\n}\n\n.ymworks-brands-box {\n  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n  padding: 20px 24px;\n  border-radius: 12px;\n  margin: 24px 0;\n  border-left: 4px solid #10b981;\n  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.1);\n}\n\n.ymworks-features-list {\n  background: #f8fafc;\n  padding: 24px 32px 24px 52px;\n  border-radius: 12px;\n  margin: 24px 0;\n  border: 2px solid #e5e7eb;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n}\n\n.ymworks-features-list ul {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n\n.ymworks-features-list li {\n  margin-bottom: 12px;\n  line-height: 1.7;\n  position: relative;\n  padding-left: 0;\n}\n\n.ymworks-features-list li:last-child {\n  margin-bottom: 0;\n}\n\n.ymworks-features-list li strong {\n  color: #10b981;\n  font-weight: 700;\n}\n\n\/* \u62c5\u5f53\u8005\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb *\/\n#author-profile {\n  background-color: #ffffff;\n  padding: 20px;\n  border-radius: 12px;\n  margin: 32px 0;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;\n  border: 2px solid #e5e7eb;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n}\n\n#author-profile-content {\n  display: flex;\n  flex-wrap: nowrap;\n  gap: 20px;\n}\n\n#author-image-container {\n  flex: 0 0 100px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n#author-image {\n  width: 80px;\n  height: 80px;\n  border-radius: 50%;\n  margin-bottom: 8px;\n  border: 3px solid #10b981;\n  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.2);\n}\n\n#author-tag {\n  font-size: 11px;\n  font-weight: 700;\n  color: #ffffff;\n  background: linear-gradient(135deg, #059669, #10b981);\n  padding: 4px 10px;\n  border-radius: 12px;\n  box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n}\n\n#author-info {\n  flex: 1;\n  min-width: 0;\n}\n\n#author-title {\n  margin: 0 0 4px 0;\n  font-size: 13px;\n  font-weight: 600;\n  color: #64748b;\n}\n\n#author-name {\n  margin: 0 0 4px 0;\n  font-size: 20px;\n  font-weight: 700;\n  line-height: 1.2;\n  color: #1e293b;\n}\n\n#author-details {\n  margin: 0 0 12px 0;\n  font-size: 12px;\n  color: #64748b;\n}\n\n#short-bio, #full-bio {\n  font-size: 14px;\n  line-height: 1.6;\n  color: #374151;\n}\n\n#read-more, #read-less {\n  color: #10b981;\n  cursor: pointer;\n  font-weight: 700;\n  text-decoration: none;\n  transition: color 0.2s ease;\n}\n\n#read-more:hover, #read-less:hover {\n  color: #059669;\n  text-decoration: underline;\n}\n\n@media (max-width: 768px) {\n  #ymworks-intro-section {\n    padding: 0 15px;\n  }\n  \n  #ymworks-intro-section p {\n    font-size: 15px;\n  }\n  \n  .ymworks-brands-box {\n    padding: 18px 20px;\n    font-size: 15px;\n  }\n  \n  .ymworks-features-list {\n    padding: 20px 24px 20px 42px;\n  }\n  \n  .ymworks-features-list li {\n    font-size: 14px;\n  }\n}\n\n@media (max-width: 480px) {\n  #author-profile {\n    padding: 16px;\n  }\n\n  #author-profile-content {\n    gap: 12px;\n  }\n  \n  #author-image-container {\n    flex: 0 0 80px;\n  }\n  \n  #author-image {\n    width: 60px;\n    height: 60px;\n  }\n  \n  #author-tag {\n    font-size: 10px;\n    padding: 3px 8px;\n  }\n  \n  #author-title {\n    font-size: 12px;\n  }\n  \n  #author-name {\n    font-size: 17px;\n  }\n  \n  #author-details, #short-bio, #full-bio {\n    font-size: 13px;\n  }\n  \n  #short-bio {\n    max-height: 4.8em;\n    overflow: hidden;\n    position: relative;\n    padding-right: 1em;\n  }\n  \n  #short-bio::after {\n    content: \"\";\n    position: absolute;\n    bottom: 0;\n    right: 0;\n    width: 70%;\n    height: 1.6em;\n    background: linear-gradient(to right, transparent, #ffffff 80%);\n  }\n  \n  #read-more {\n    position: absolute;\n    bottom: 0;\n    right: 0;\n    background: #ffffff;\n    padding: 0 4px;\n    font-size: 12px;\n    line-height: 1.6;\n    z-index: 1;\n  }\n}\n<\/style>\n\n<div id=\"ymworks-intro-section\">\n  \n  <p>\n    <strong>\u300c\u30c7\u30a3\u30fc\u30e9\u30fc\u8eca\u691c\u3088\u308a\u3082\u8cbb\u7528\u3092\u6291\u3048\u305f\u3044\u3002\u3057\u304b\u3057\u3001\u54c1\u8cea\u306b\u306f\u4e00\u5207\u59a5\u5354\u3057\u305f\u304f\u306a\u3044\u300d<br>\n    \u300c\u611b\u8eca\u3092\u9577\u304f\u5927\u5207\u306b\u4e57\u308a\u7d9a\u3051\u308b\u305f\u3081\u306b\u3001\u4fe1\u983c\u3067\u304d\u308b\u8f38\u5165\u8eca\u5c02\u9580\u5e97\u306b\u4efb\u305b\u305f\u3044\u300d<\/strong>\n  <\/p>\n  \n  <p>\n    \u305d\u3093\u306a\u8f38\u5165\u8eca\u30aa\u30fc\u30ca\u30fc\u69d8\u306e\u30cb\u30fc\u30ba\u306b\u304a\u5fdc\u3048\u3059\u308b\u306e\u304c\u3001<a href=\"https:\/\/ymworks.com\/new\/mechanic-service\/syaken\/\">\u30ef\u30a4\u30a8\u30e0\u30ef\u30fc\u30af\u30b9\u306e\u8eca\u691c\u30b5\u30fc\u30d3\u30b9<\/a>\u3067\u3059\u3002<br>\n    \u56fd\u5bb6\u8cc7\u683c\u6574\u5099\u58eb\u3068\u9ad8\u6027\u80fd\u8a3a\u65ad\u6a5f\u3067\u3001\u30c7\u30a3\u30fc\u30e9\u30fc\u3068\u540c\u7b49\u4ee5\u4e0a\u306e\u54c1\u8cea\u3092\u304a\u7d04\u675f\u3002\u4ed6\u5e97\u8cfc\u5165\u8eca\u3082\u5927\u6b53\u8fce\u3067\u3059\u3002<br>\n    \u307e\u305a\u306f\u7121\u6599\u306e\u8cbb\u7528\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u3067\u3001\u304a\u5ba2\u69d8\u306e\u304a\u8eca\u306e\u6982\u7b97\u8cbb\u7528\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002\n  <\/p>\n  \n  <div class=\"ymworks-features-list\">\n    <ul>\n      <li><strong>\u660e\u6717\u4f1a\u8a08\uff1a<\/strong> \u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u3067\u4e8b\u524d\u306b\u6982\u7b97\u8cbb\u7528\u3092\u78ba\u8a8d\u3002\u5fc5\u8981\u306a\u6574\u5099\u306e\u307f\u3054\u63d0\u6848\u3057\u307e\u3059\u3002<\/li>\n      <li><strong>\u78ba\u304b\u306a\u8a3a\u65ad\uff1a<\/strong> \u8eca\u7a2e\u3054\u3068\u306e\u30a6\u30a3\u30fc\u30af\u30dd\u30a4\u30f3\u30c8\u3092\u719f\u77e5\u3057\u3001\u7684\u78ba\u306a\u8eca\u691c\u3092\u5b9f\u65bd\u3002<\/li>\n      <li><strong>\u30d7\u30ed\u306e\u6280\u8853\uff1a<\/strong> \u7d4c\u9a13\u8c4a\u5bcc\u306a\u56fd\u5bb6\u8cc7\u683c\u6574\u5099\u58eb\u304c\u3001\u7d30\u90e8\u307e\u3067\u4e01\u5be7\u306b\u30c1\u30a7\u30c3\u30af\u3002<\/li>\n      <li><strong>\u5b89\u5fc3\u306e\u4fdd\u8a3c\uff1a<\/strong> \u8eca\u691c\u6574\u5099\u6642\u306e\u4e0d\u5177\u5408\u306f\u30013\u30f6\u6708\u307e\u305f\u306f3,000km\u307e\u3067\u7121\u6599\u5bfe\u5fdc\u3002<\/li>\n    <\/ul>\n  <\/div>\n  \n  <div class=\"ymworks-brands-box\">\n    <strong>\u30d9\u30f3\u30c4\u30fbBMW\u30fb\u30a2\u30a6\u30c7\u30a3\u30fbVW\u30fbMINI\u30fb\u30d7\u30b8\u30e7\u30fc\u30fb\u30b7\u30c8\u30ed\u30a8\u30f3\u30fb\u30d5\u30a3\u30a2\u30c3\u30c8<\/strong>\u306a\u3069\u6b27\u5dde\u8eca\u5c02\u9580\u30021992\u5e74\u5275\u696d\u300118,000\u53f0\u4ee5\u4e0a\u306e\u5b9f\u7e3e\u3092\u6301\u3064\u5927\u962a\u5e9c\u583a\u5e02\u306e\u8a8d\u8a3c\u5de5\u5834\u3067\u3059\u3002\n  <\/div>\n\n  <!-- \u62c5\u5f53\u8005\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb -->\n  <div id=\"author-profile\">\n    <div id=\"author-profile-content\">\n      <div id=\"author-image-container\">\n        <img decoding=\"async\" id=\"author-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2024\/08\/9b30c021e131367333a4dad57083b7a4.jpg\" alt=\"\u4e2d\u6751 \u6b66\u592e\" \/>\n        <span id=\"author-tag\">\u6574\u5099\u62c5\u5f53<\/span>\n      <\/div>\n      <div id=\"author-info\">\n        <div id=\"author-title\">\u30c6\u30af\u30cb\u30ab\u30eb\u30c7\u30a3\u30ec\u30af\u30bf\u30fc<\/div>\n        <div id=\"author-name\">\u4e2d\u6751 \u6b66\u592e<\/div>\n        <p id=\"author-details\">\u5175\u5eab\u770c \u732a\u540d\u5ddd\u753a\u5728\u4f4f 1972\u5e74\u751f\u307e\u308c<\/p>\n        <div id=\"short-bio\">\n          2005\u5e74\u30e9\u30ea\u30fc\u30b8\u30e3\u30d1\u30f3\u3067\u306f\u30c1\u30fc\u30d5\u30e1\u30ab\u30cb\u30c3\u30af\u3068\u3057\u3066\u6d3b\u8e8d\u3002\u30d7\u30b8\u30e7\u30fc\u3001\u30b7\u30c8\u30ed\u30a8\u30f3\u3001BMW\u3001\u30a2\u30a6\u30c7\u30a3\u3001\u30d5\u30a9\u30eb\u30af\u30b9\u30ef\u30fc\u30b2\u30f3\u306a\u3069\u3001\u69d8\u3005\u306a\u6b27\u5dde\u8eca\u30e1\u30fc\u30ab\u30fc\u306e\u8eca\u4e21\u3092\u6570\u5343\u53f0\u4ee5\u4e0a\u62c5\u5f53\u3057\u3001\u5e45\u5e83\u3044\u77e5\u8b58\u3068\u6280\u8853\u3092\u6301\u3064\u300210\u4ee3\u304b\u3089\u30af\u30eb\u30de\u306b\u8208\u5473\u3092\u6301\u3061\u3001\u5de5\u696d\u7cfb\u5927\u5b66\u5352\u696d\u5f8c\u3001\u5927\u624b\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u30b7\u30e7\u30c3\u30d7\u3092\u7d4c\u30661999\u5e74\u306b\u30ef\u30a4\u30a8\u30e0\u30ef\u30fc\u30af\u30b9\u306b\u5165\u793e\u3002\n          <span id=\"read-more\">&#8230;\u7d9a\u304d\u3092\u8aad\u3080<\/span>\n        <\/div>\n        <div id=\"full-bio\" style=\"display: none;\">\n          2005\u5e74\u30e9\u30ea\u30fc\u30b8\u30e3\u30d1\u30f3\u3067\u306f\u30c1\u30fc\u30d5\u30e1\u30ab\u30cb\u30c3\u30af\u3068\u3057\u3066\u6d3b\u8e8d\u3002\u30d7\u30b8\u30e7\u30fc\u3001\u30b7\u30c8\u30ed\u30a8\u30f3\u3001BMW\u3001\u30a2\u30a6\u30c7\u30a3\u3001\u30d5\u30a9\u30eb\u30af\u30b9\u30ef\u30fc\u30b2\u30f3\u306a\u3069\u3001\u69d8\u3005\u306a\u6b27\u5dde\u8eca\u30e1\u30fc\u30ab\u30fc\u306e\u8eca\u4e21\u3092\u6570\u5343\u53f0\u4ee5\u4e0a\u62c5\u5f53\u3057\u3001\u5e45\u5e83\u3044\u77e5\u8b58\u3068\u6280\u8853\u3092\u6301\u3064\u300210\u4ee3\u304b\u3089\u30af\u30eb\u30de\u306b\u8208\u5473\u3092\u6301\u3061\u3001\u5de5\u696d\u7cfb\u5927\u5b66\u5352\u696d\u5f8c\u3001\u5927\u624b\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u30b7\u30e7\u30c3\u30d7\u3092\u7d4c\u30661999\u5e74\u306b\u30ef\u30a4\u30a8\u30e0\u30ef\u30fc\u30af\u30b9\u306b\u5165\u793e\u3002\u78ba\u304b\u306a\u5de5\u5b66\u77e5\u8b58\u3068\u67d4\u8edf\u306a\u767a\u60f3\u3067\u3001\u5e45\u5e83\u3044\u8eca\u7a2e\u306e\u6574\u5099\u30fb\u4fee\u7406\u30fb\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3092\u624b\u304c\u3051\u308b\u3002\u92ed\u3044\u6d1e\u5bdf\u529b\u3068\u8c4a\u5bcc\u306a\u7d4c\u9a13\u3092\u6d3b\u304b\u3057\u3001\u30de\u30cb\u30e5\u30a2\u30eb\u306b\u983c\u3089\u306a\u3044\u5bfe\u5fdc\u529b\u3067\u30ef\u30a4\u30a8\u30e0\u30ef\u30fc\u30af\u30b9\u306e\u4e2d\u6838\u3092\u62c5\u3046\u3002\u8da3\u5473\u306f\u30ab\u30fc\u30c8\u3001\u30b9\u30dd\u30fc\u30c4\u8d70\u884c\u3001\u8eca\u4e21\u88fd\u4f5c\u3002\u30e9\u30ea\u30fc\u8eca\u4e21\u88fd\u4f5c\u304b\u3089\u8f38\u5165\u65e7\u8eca\u306e\u30ec\u30b9\u30c8\u30a2\u307e\u3067\u5e45\u5e83\u304f\u5bfe\u5fdc\u3002\n          <span id=\"read-less\">\u9589\u3058\u308b<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n  \n<\/div>\n\n<script>\n(function() {\n  'use strict';\n  \n  const readMoreBtn = document.getElementById('read-more');\n  const readLessBtn = document.getElementById('read-less');\n  const shortBio = document.getElementById('short-bio');\n  const fullBio = document.getElementById('full-bio');\n  \n  if (readMoreBtn && readLessBtn && shortBio && fullBio) {\n    readMoreBtn.addEventListener('click', function() {\n      shortBio.style.display = 'none';\n      fullBio.style.display = 'block';\n    });\n    \n    readLessBtn.addEventListener('click', function() {\n      shortBio.style.display = 'block';\n      fullBio.style.display = 'none';\n    });\n  }\n})();\n<\/script>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"SoftwareApplication\",\n  \"name\": \"\u8f38\u5165\u8eca\u30fb\u5916\u8eca \u8eca\u691c\u8cbb\u7528\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\",\n  \"applicationCategory\": \"FinanceApplication\",\n  \"operatingSystem\": \"Web\",\n  \"offers\": {\n    \"@type\": \"Offer\",\n    \"price\": \"0\",\n    \"priceCurrency\": \"JPY\"\n  },\n  \"description\": \"\u8f38\u5165\u8eca\u306e\u8eca\u691c\u8cbb\u7528\u3068\u30aa\u30d7\u30b7\u30e7\u30f3\u6574\u5099\u8cbb\u7528\u3092\u5373\u5ea7\u306b\u8a08\u7b97\u3067\u304d\u308bWeb\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u3002\u8eca\u691c\u5207\u308c\u306e\u5834\u5408\u306e\u8ffd\u52a0\u8cbb\u7528\u3082\u81ea\u52d5\u8a08\u7b97\u3002\"\n}\n<\/script>\n\n<div id=\"shaken-simulator-v4\" data-api-url=\"https:\/\/script.google.com\/macros\/s\/AKfycbwsoRr01AFI2WCRmxx5SZSRfIHyn2UoHzyFISEXlnLvS0hTkrQ9Mk7krz4Fr-LkJTa7Gw\/exec\">\n<style>\n#shaken-simulator-v4 * {\n  box-sizing: border-box;\n  color: inherit !important;\n}\n\n#shaken-simulator-v4 {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif !important;\n  line-height: 1.6;\n  color: #333 !important;\n  width: 100%;\n  max-width: 1200px;\n  margin: 0 auto;\n  padding: 0;\n  background: #ffffff !important;\n}\n\n#shaken-simulator-v4 h2,\n#shaken-simulator-v4 h3,\n#shaken-simulator-v4 h4 {\n  margin: 0 !important;\n  padding: 0 !important;\n  border: none !important;\n  background: transparent !important;\n  text-decoration: none !important;\n  line-height: 1.4 !important;\n}\n\n#shaken-simulator-v4 .skv-container {\n  background: #ffffff !important;\n  border-radius: 20px;\n  box-shadow: 0 6px 30px rgba(0,0,0,0.08);\n  overflow: hidden;\n  transition: box-shadow 0.3s ease;\n}\n\n#shaken-simulator-v4 .skv-container:hover {\n  box-shadow: 0 10px 40px rgba(0,0,0,0.12);\n}\n\n#shaken-simulator-v4 .skv-header {\n  background: linear-gradient(135deg, #1e40af, #3b82f6);\n  padding: 48px 32px;\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n}\n\n#shaken-simulator-v4 .skv-header::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background: linear-gradient(135deg, rgba(255,255,255,0.1), transparent);\n  pointer-events: none;\n}\n\n#shaken-simulator-v4 h2 {\n  font-size: 32px !important;\n  font-weight: 700 !important;\n  color: white !important;\n  letter-spacing: -0.02em;\n  position: relative;\n  z-index: 1;\n  margin: 0 0 16px 0 !important;\n}\n\n#shaken-simulator-v4 .skv-notice {\n  font-size: 15px;\n  color: rgba(255,255,255,0.95) !important;\n  background: rgba(255,255,255,0.2);\n  padding: 12px 28px;\n  border-radius: 30px;\n  display: inline-block;\n  backdrop-filter: blur(10px);\n  border: 1px solid rgba(255,255,255,0.3);\n  position: relative;\n  z-index: 1;\n  transition: all 0.3s ease;\n}\n\n#shaken-simulator-v4 .skv-notice:hover {\n  background: rgba(255,255,255,0.25);\n  transform: translateY(-1px);\n}\n\n#shaken-simulator-v4 .skv-body {\n  padding: 48px 40px;\n  background: linear-gradient(to bottom, #fafafa, #ffffff);\n  position: relative;\n}\n\n#shaken-simulator-v4 .skv-section-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 28px;\n  padding-bottom: 20px;\n  border-bottom: 3px solid #e5e7eb;\n  position: relative;\n}\n\n#shaken-simulator-v4 .skv-section-header::after {\n  content: '';\n  position: absolute;\n  bottom: -3px;\n  left: 0;\n  width: 80px;\n  height: 3px;\n  background: linear-gradient(90deg, #3b82f6, #1e40af);\n  border-radius: 2px;\n}\n\n#shaken-simulator-v4 h2.skv-section-title {\n  display: flex !important;\n  align-items: center;\n  gap: 14px;\n  font-size: 24px !important;\n  font-weight: 700 !important;\n  color: #1e293b !important;\n  margin: 0 !important;\n  letter-spacing: -0.01em;\n}\n\n#shaken-simulator-v4 h4.skv-result-section-title {\n  font-size: 20px !important;\n  font-weight: 700 !important;\n  color: #1e293b !important;\n  margin: 0 0 24px 0 !important;\n  display: flex;\n  align-items: center;\n  gap: 12px;\n}\n\n#shaken-simulator-v4 .skv-section-icon {\n  font-size: 28px;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));\n}\n\n#shaken-simulator-v4 .skv-section-status {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  padding: 8px 20px;\n  background: #e2e8f0;\n  border-radius: 24px;\n  font-size: 14px;\n  color: #64748b !important;\n  font-weight: 600;\n  border: 2px solid transparent;\n  transition: all 0.2s ease;\n}\n\n#shaken-simulator-v4 .skv-section-status.skv-completed {\n  background: linear-gradient(135deg, #d1fae5, #a7f3d0);\n  color: #065f46 !important;\n  border-color: rgba(16, 185, 129, 0.3);\n}\n\n#shaken-simulator-v4 .skv-section-status.skv-active,\n#shaken-simulator-v4 .skv-section-status.skv-checking {\n  background: linear-gradient(135deg, #ddd6fe, #c7d2fe);\n  color: #4338ca !important;\n  border-color: rgba(99, 102, 241, 0.3);\n}\n\n#shaken-simulator-v4 .skv-section-status-icon {\n  width: 8px;\n  height: 8px;\n  background: currentColor;\n  border-radius: 50%;\n  animation: skv-pulse 2s infinite;\n}\n\n@keyframes skv-pulse {\n  0%, 100% { \n    opacity: 1; \n    transform: scale(1); \n  }\n  50% { \n    opacity: 0.6; \n    transform: scale(0.9); \n  }\n}\n\n#shaken-simulator-v4 .skv-section-subtitle {\n  margin: -12px 0 28px 0;\n  color: #64748b !important;\n  font-size: 16px;\n  line-height: 1.5;\n}\n\n#shaken-simulator-v4 .skv-section-divider {\n  margin: 56px 0;\n}\n\n#shaken-simulator-v4 .skv-form-group {\n  margin-bottom: 36px;\n}\n\n#shaken-simulator-v4 .skv-form-group.skv-hidden {\n  display: none;\n}\n\n#shaken-simulator-v4 .skv-form-label {\n  display: flex;\n  align-items: center;\n  font-weight: 600;\n  color: #1e293b !important;\n  margin-bottom: 18px;\n  font-size: 17px;\n  letter-spacing: -0.01em;\n}\n\n#shaken-simulator-v4 .skv-info-icon {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 22px;\n  height: 22px;\n  margin-left: 10px;\n  background: #d0d0d0;\n  color: #666 !important;\n  border-radius: 50%;\n  font-size: 13px;\n  font-weight: 700;\n  cursor: pointer;\n  position: relative;\n  transition: background 0.2s;\n}\n\n#shaken-simulator-v4 .skv-info-icon:hover {\n  background: #c0c0c0;\n}\n\n#shaken-simulator-v4 .skv-info-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  background: white;\n  padding: 24px;\n  border-radius: 16px;\n  box-shadow: 0 12px 48px rgba(0,0,0,0.3);\n  z-index: 10001;\n  max-width: 90%;\n  width: 340px;\n  display: none;\n}\n\n#shaken-simulator-v4 .skv-info-popup.skv-show {\n  display: block;\n}\n\n#shaken-simulator-v4 .skv-info-popup-content {\n  font-size: 15px;\n  color: #333 !important;\n  line-height: 1.6;\n  margin-bottom: 20px;\n}\n\n#shaken-simulator-v4 .skv-info-popup-close {\n  display: block;\n  width: 100%;\n  padding: 12px 20px;\n  background: #3b82f6;\n  color: white !important;\n  border: none;\n  border-radius: 8px;\n  font-size: 15px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: background 0.2s;\n}\n\n#shaken-simulator-v4 .skv-info-popup-close:hover {\n  background: #2563eb;\n}\n\n#shaken-simulator-v4 .skv-info-overlay {\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background: rgba(0,0,0,0.5);\n  z-index: 9999;\n  display: none;\n}\n\n#shaken-simulator-v4 .skv-info-overlay.skv-show {\n  display: block;\n}\n\n#shaken-simulator-v4 .skv-select-wrapper {\n  position: relative;\n  width: 100%;\n}\n\n#shaken-simulator-v4 .skv-select-box {\n  width: 100%;\n  padding: 18px 56px 18px 24px;\n  border: 2px solid #e5e7eb;\n  border-radius: 16px;\n  font-size: 16px;\n  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  background: white;\n  color: #333 !important;\n  box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n  appearance: none;\n  -webkit-appearance: none;\n  cursor: pointer;\n}\n\n#shaken-simulator-v4 .skv-select-box:focus {\n  outline: none;\n  border-color: #3b82f6;\n  box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1), 0 4px 12px rgba(0,0,0,0.1);\n  transform: translateY(-1px);\n}\n\n#shaken-simulator-v4 .skv-select-box.skv-selected {\n  background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n  border-color: #3b82f6;\n  box-shadow: 0 6px 16px rgba(59, 130, 246, 0.15);\n  transform: translateY(-1px);\n}\n\n#shaken-simulator-v4 .skv-select-box:disabled {\n  background: #f5f5f5;\n  cursor: not-allowed;\n  opacity: 0.6;\n}\n\n#shaken-simulator-v4 .skv-select-arrow {\n  position: absolute;\n  top: 50%;\n  right: 24px;\n  transform: translateY(-50%);\n  pointer-events: none;\n  width: 0;\n  height: 0;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-top: 7px solid #666;\n  transition: border-color 0.3s ease;\n}\n\n#shaken-simulator-v4 .skv-select-wrapper:has(.skv-select-box.skv-selected) .skv-select-arrow {\n  border-top-color: #3b82f6;\n}\n\n#shaken-simulator-v4 .skv-radio-group {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 24px;\n}\n\n#shaken-simulator-v4 .skv-radio-group.skv-three-columns {\n  grid-template-columns: repeat(3, 1fr);\n}\n\n#shaken-simulator-v4 .skv-radio-item {\n  position: relative;\n}\n\n#shaken-simulator-v4 .skv-radio-item input[type=\"radio\"] {\n  position: absolute;\n  opacity: 0;\n  pointer-events: none;\n}\n\n#shaken-simulator-v4 .skv-radio-item label {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 16px 20px;\n  border: 2px solid #e5e7eb;\n  border-radius: 20px;\n  text-align: center;\n  cursor: pointer;\n  background: white;\n  color: #374151 !important;\n  font-weight: 600;\n  font-size: 17px;\n  min-height: 95px;\n  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  position: relative;\n  box-shadow: 0 2px 12px rgba(0,0,0,0.04);\n}\n\n#shaken-simulator-v4 .skv-radio-indicator {\n  position: absolute;\n  top: 14px;\n  right: 14px;\n  width: 22px;\n  height: 22px;\n  border: 2px solid #d1d5db;\n  border-radius: 50%;\n  background: white;\n  transition: all 0.2s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n#shaken-simulator-v4 .skv-radio-indicator::after {\n  content: '';\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #3b82f6;\n  transform: scale(0);\n  transition: transform 0.2s ease;\n}\n\n#shaken-simulator-v4 .skv-radio-item input[type=\"radio\"]:checked + label .skv-radio-indicator {\n  border-color: #3b82f6;\n  background: white;\n}\n\n#shaken-simulator-v4 .skv-radio-item input[type=\"radio\"]:checked + label .skv-radio-indicator::after {\n  transform: scale(1);\n}\n\n#shaken-simulator-v4 .skv-radio-item[data-option=\"select\"] label::before {\n  content: '10%\u5272\u5f15';\n  position: absolute;\n  top: -12px;\n  right: 24px;\n  background: linear-gradient(135deg, #3b82f6, #1e40af);\n  color: white !important;\n  padding: 6px 14px;\n  border-radius: 18px;\n  font-size: 12px;\n  font-weight: 700;\n  box-shadow: 0 4px 10px rgba(59, 130, 246, 0.3);\n  z-index: 10;\n}\n\n#shaken-simulator-v4 .skv-radio-item input[type=\"radio\"]:checked + label {\n  background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n  border-color: #3b82f6;\n  color: #1e3a8a !important;\n  font-weight: 700;\n  transform: translateY(-3px) scale(1.02);\n  box-shadow: 0 12px 28px rgba(59, 130, 246, 0.2);\n}\n\n@media (hover: hover) {\n  #shaken-simulator-v4 .skv-radio-item label:hover {\n    border-color: #3b82f6;\n    transform: translateY(-2px) scale(1.01);\n    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);\n  }\n}\n\n#shaken-simulator-v4 .skv-radio-item label:active {\n  transform: translateY(-1px) scale(1);\n}\n\n#shaken-simulator-v4 .skv-radio-item label small {\n  font-size: 14px;\n  color: #6b7280 !important;\n  margin-top: 8px;\n  font-weight: 500;\n  line-height: 1.4;\n}\n\n#shaken-simulator-v4 .skv-radio-item input[type=\"radio\"]:checked + label small {\n  color: #1e3a8a !important;\n}\n\n#shaken-simulator-v4 .skv-expired-warning {\n  background: linear-gradient(135deg, #fffbeb, #fef3c7);\n  border: 2px solid #fbbf24;\n  border-radius: 16px;\n  padding: 20px 24px;\n  margin-top: 24px;\n  margin-bottom: 32px;\n  display: none;\n  box-shadow: 0 6px 16px rgba(251, 191, 36, 0.15);\n}\n\n#shaken-simulator-v4 .skv-expired-warning.skv-show {\n  display: block;\n  animation: skv-slideInUp 0.3s ease;\n}\n\n@keyframes skv-slideInUp {\n  from {\n    opacity: 0;\n    transform: translateY(20px);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n\n#shaken-simulator-v4 .skv-expired-warning-title {\n  font-weight: 700;\n  color: #92400e !important;\n  margin-bottom: 10px;\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  font-size: 17px;\n}\n\n#shaken-simulator-v4 .skv-expired-warning-content {\n  color: #b45309 !important;\n  font-size: 15px;\n  line-height: 1.6;\n}\n\n#shaken-simulator-v4 .skv-expired-options {\n  margin-top: 20px;\n  padding-top: 20px;\n  border-top: 1px solid #fbbf24;\n}\n\n#shaken-simulator-v4 .skv-expired-options .skv-radio-item label {\n  min-height: 100px;\n  padding: 14px 18px;\n}\n\n#shaken-simulator-v4 .skv-card-group {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 28px;\n  margin-bottom: 36px;\n}\n\n#shaken-simulator-v4 .skv-card-group.skv-four-columns {\n  grid-template-columns: repeat(4, 1fr);\n}\n\n#shaken-simulator-v4 .skv-card-item {\n  position: relative;\n  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n#shaken-simulator-v4 .skv-card-item input[type=\"radio\"],\n#shaken-simulator-v4 .skv-card-item input[type=\"checkbox\"] {\n  position: absolute;\n  opacity: 0;\n  pointer-events: none;\n}\n\n#shaken-simulator-v4 .skv-card-item label {\n  display: flex;\n  flex-direction: column;\n  padding: 0;\n  border: 2px solid #e5e7eb;\n  border-radius: 20px;\n  cursor: pointer;\n  background: white;\n  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  height: 100%;\n  position: relative;\n  overflow: hidden;\n  box-shadow: 0 4px 16px rgba(0,0,0,0.06);\n}\n\n#shaken-simulator-v4 .skv-card-item.skv-disabled label {\n  opacity: 0.4;\n  cursor: not-allowed;\n  filter: grayscale(0.5);\n}\n\n#shaken-simulator-v4 .skv-card-item.skv-disabled label:hover {\n  transform: none;\n  box-shadow: 0 4px 16px rgba(0,0,0,0.06);\n  border-color: #e5e7eb;\n}\n\n#shaken-simulator-v4 .skv-card-image {\n  width: 100%;\n  height: 140px;\n  object-fit: cover;\n  background: linear-gradient(135deg, #f8fafc, #f1f5f9);\n  display: block;\n  flex-shrink: 0;\n  transition: transform 0.2s ease;\n  position: relative;\n}\n\n#shaken-simulator-v4 .skv-card-item:not(.skv-disabled):hover .skv-card-image {\n  transform: scale(1.05);\n}\n\n#shaken-simulator-v4 .skv-card-content {\n  padding: 16px;\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n  flex: 1;\n}\n\n#shaken-simulator-v4 .skv-card-title {\n  font-weight: 700;\n  font-size: 14px;\n  color: #1e293b !important;\n  margin: 0;\n  line-height: 1.3;\n  letter-spacing: -0.01em;\n}\n\n#shaken-simulator-v4 .skv-card-description {\n  font-size: 11px;\n  color: #64748b !important;\n  line-height: 1.4;\n  margin: 0;\n  padding-bottom: 10px;\n  border-bottom: 1px solid #e5e7eb;\n}\n\n#shaken-simulator-v4 .skv-card-prices {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  font-size: 14px;\n  font-weight: 600;\n  margin-top: auto;\n  position: relative;\n  min-height: 28px;\n  flex-wrap: wrap;\n}\n\n#shaken-simulator-v4 .skv-card-price-original {\n  color: #9ca3af !important;\n  text-decoration: line-through;\n  font-size: 11px;\n  white-space: nowrap;\n  font-weight: 500;\n}\n\n#shaken-simulator-v4 .skv-card-price-sale {\n  color: #1e293b !important;\n  font-size: 15px;\n  font-weight: 700;\n  white-space: nowrap;\n  letter-spacing: -0.01em;\n}\n\n#shaken-simulator-v4 .skv-card-discount {\n  position: absolute;\n  top: 10px;\n  right: 10px;\n  color: white !important;\n  background: linear-gradient(135deg, #10b981, #059669);\n  font-weight: 700;\n  font-size: 10px;\n  padding: 5px 8px;\n  border-radius: 10px;\n  white-space: nowrap;\n  box-shadow: 0 4px 8px rgba(16, 185, 129, 0.4);\n  z-index: 2;\n  border: 2px solid rgba(255, 255, 255, 0.2);\n  display: flex;\n  align-items: center;\n  gap: 3px;\n}\n\n#shaken-simulator-v4 .skv-card-item.skv-none-option label {\n  background: white;\n  border: 2px solid #e5e7eb;\n  justify-content: center;\n  align-items: center;\n  min-height: 140px;\n  padding: 24px;\n  text-align: center;\n}\n\n#shaken-simulator-v4 .skv-card-item.skv-none-option .skv-card-title {\n  font-size: 17px;\n  margin-bottom: 10px;\n}\n\n#shaken-simulator-v4 .skv-card-item.skv-none-option .skv-card-description {\n  font-size: 13px;\n  margin: 8px 0;\n  border: none;\n  padding: 0;\n}\n\n#shaken-simulator-v4 .skv-card-item.skv-none-option .skv-card-prices {\n  padding-top: 0;\n  justify-content: center;\n  min-height: auto;\n}\n\n#shaken-simulator-v4 .skv-card-item input[type=\"radio\"]:checked + label,\n#shaken-simulator-v4 .skv-card-item input[type=\"checkbox\"]:checked + label {\n  background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n  border-color: #3b82f6;\n  box-shadow: 0 12px 32px rgba(59, 130, 246, 0.2);\n  transform: translateY(-4px) scale(1.03);\n}\n\n@media (hover: hover) {\n  #shaken-simulator-v4 .skv-card-item:not(.skv-disabled) label:hover {\n    border-color: #3b82f6;\n    transform: translateY(-3px) scale(1.02);\n    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);\n  }\n}\n\n#shaken-simulator-v4 .skv-card-item:not(.skv-disabled) label:active {\n  transform: translateY(-2px) scale(1.01);\n}\n\n#shaken-simulator-v4 .skv-inline-loading {\n  display: none;\n  align-items: center;\n  gap: 10px;\n  margin: 14px 0;\n  padding: 14px 20px;\n  background: linear-gradient(135deg, #eff6ff, #dbeafe);\n  border: 2px solid rgba(59, 130, 246, 0.2);\n  border-radius: 12px;\n  font-size: 15px;\n  color: #1e40af !important;\n  position: relative;\n  min-height: 48px;\n  width: 100%;\n  box-sizing: border-box;\n  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n}\n\n#shaken-simulator-v4 .skv-inline-loading.skv-show {\n  display: flex;\n}\n\n#shaken-simulator-v4 .skv-inline-loading .skv-spinner-small {\n  width: 18px;\n  height: 18px;\n  border: 2px solid rgba(59, 130, 246, 0.3);\n  border-top: 2px solid #3b82f6;\n  border-radius: 50%;\n  animation: skv-spin 0.8s linear infinite;\n  flex-shrink: 0;\n}\n\n#shaken-simulator-v4 .skv-calculate-button-wrapper {\n  text-align: center;\n  margin: 48px 0;\n}\n\n#shaken-simulator-v4 .skv-calculate-button {\n  display: inline-flex;\n  align-items: center;\n  gap: 12px;\n  padding: 20px 48px;\n  background: linear-gradient(135deg, #3b82f6, #1e40af);\n  color: white !important;\n  font-size: 19px;\n  font-weight: 700;\n  border: none;\n  border-radius: 60px;\n  cursor: pointer;\n  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  box-shadow: 0 10px 24px rgba(59, 130, 246, 0.3);\n  letter-spacing: -0.01em;\n}\n\n@media (hover: hover) {\n  #shaken-simulator-v4 .skv-calculate-button:hover:not(:disabled) {\n    transform: translateY(-3px) scale(1.05);\n    box-shadow: 0 16px 32px rgba(59, 130, 246, 0.4);\n    background: linear-gradient(135deg, #1e40af, #1e3a8a);\n  }\n}\n\n#shaken-simulator-v4 .skv-calculate-button:active:not(:disabled) {\n  transform: translateY(-1px) scale(1.02);\n}\n\n#shaken-simulator-v4 .skv-calculate-button:disabled {\n  background: linear-gradient(135deg, #d1d5db, #9ca3af);\n  cursor: not-allowed;\n  box-shadow: none;\n  transform: none;\n}\n\n#shaken-simulator-v4 .skv-loading-calculate {\n  display: none;\n  align-items: center;\n  gap: 10px;\n  margin: 14px auto;\n  padding: 14px 20px;\n  background: linear-gradient(135deg, #eff6ff, #dbeafe);\n  border: 2px solid rgba(59, 130, 246, 0.2);\n  border-radius: 12px;\n  font-size: 15px;\n  color: #1e40af !important;\n  position: relative;\n  min-height: 48px;\n  max-width: 320px;\n  box-sizing: border-box;\n  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n}\n\n#shaken-simulator-v4 .skv-loading-calculate.skv-show {\n  display: flex;\n}\n\n#shaken-simulator-v4 .skv-loading-calculate .skv-spinner-small {\n  width: 18px;\n  height: 18px;\n  border: 2px solid rgba(59, 130, 246, 0.3);\n  border-top: 2px solid #3b82f6;\n  border-radius: 50%;\n  animation: skv-spin 0.8s linear infinite;\n  flex-shrink: 0;\n}\n\n#shaken-simulator-v4 .skv-error {\n  display: none;\n  padding: 24px 28px;\n  background: linear-gradient(135deg, #fef2f2, #fee2e2);\n  border: 2px solid #fca5a5;\n  border-radius: 16px;\n  color: #991b1b !important;\n  margin-top: 24px;\n  font-weight: 500;\n  box-shadow: 0 6px 16px rgba(220, 38, 38, 0.1);\n}\n\n#shaken-simulator-v4 .skv-error.skv-show {\n  display: block;\n  animation: skv-slideInUp 0.2s ease;\n}\n\n#shaken-simulator-v4 .skv-initial-loading {\n  text-align: center;\n  padding: 72px 24px;\n  color: #666 !important;\n}\n\n#shaken-simulator-v4 .skv-initial-loading .skv-spinner {\n  display: inline-block;\n  width: 44px;\n  height: 44px;\n  border: 3px solid #f3f3f3;\n  border-top: 3px solid #3b82f6;\n  border-radius: 50%;\n  animation: skv-spin 1s linear infinite;\n  margin-bottom: 24px;\n}\n\n@keyframes skv-spin {\n  0% { transform: rotate(0deg); }\n  100% { transform: rotate(360deg); }\n}\n\n#shaken-simulator-v4 .skv-result {\n  display: none;\n  margin-top: 56px;\n}\n\n#shaken-simulator-v4 .skv-result.skv-show {\n  display: block;\n  animation: skv-slideInUp 0.4s ease;\n}\n\n#shaken-simulator-v4 .skv-result-header {\n  background: linear-gradient(135deg, #ffffff, #e2e8f0);\n  padding: 48px 40px;\n  border: 2px solid #e5e7eb;\n  border-radius: 24px 24px 0 0;\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n}\n\n#shaken-simulator-v4 .skv-result-header::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 4px;\n  background: linear-gradient(90deg, #3b82f6, #1e40af, #3b82f6);\n  background-size: 200% 100%;\n  animation: skv-gradient-shift 3s ease-in-out infinite;\n}\n\n@keyframes skv-gradient-shift {\n  0%, 100% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n}\n\n#shaken-simulator-v4 .skv-result-header h3 {\n  margin: 0 0 14px 0 !important;\n  font-size: 32px !important;\n  font-weight: 700 !important;\n  color: #1e293b !important;\n  letter-spacing: -0.02em;\n}\n\n#shaken-simulator-v4 .skv-result-subtitle {\n  font-size: 16px;\n  color: #64748b !important;\n  font-weight: 500;\n}\n\n#shaken-simulator-v4 .skv-result-body {\n  background: white;\n  border: 2px solid #e5e7eb;\n  border-top: none;\n  border-radius: 0 0 24px 24px;\n  padding: 48px 40px;\n  box-shadow: 0 10px 30px rgba(0,0,0,0.08);\n}\n\n#shaken-simulator-v4 .skv-result-section {\n  margin-bottom: 40px;\n  padding-bottom: 40px;\n  position: relative;\n}\n\n#shaken-simulator-v4 .skv-result-section:not(:last-child)::after {\n  content: '';\n  position: absolute;\n  bottom: 0;\n  left: 50%;\n  transform: translateX(-50%);\n  width: 140px;\n  height: 1px;\n  background: linear-gradient(to right, transparent, #e5e7eb, transparent);\n}\n\n#shaken-simulator-v4 .skv-result-section:last-child {\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n#shaken-simulator-v4 .skv-result-section-title.skv-discount-title {\n  color: #1e293b !important;\n}\n\n#shaken-simulator-v4 .skv-result-row {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 18px 0;\n  transition: all 0.15s ease;\n  border-radius: 10px;\n  margin: 0 -10px;\n}\n\n#shaken-simulator-v4 .skv-result-row:hover {\n  background: rgba(59, 130, 246, 0.02);\n  padding-left: 10px;\n  padding-right: 10px;\n}\n\n#shaken-simulator-v4 .skv-result-row.skv-has-border {\n  border-bottom: 1px solid #f1f5f9;\n}\n\n#shaken-simulator-v4 .skv-result-row:last-child {\n  border-bottom: none;\n}\n\n#shaken-simulator-v4 .skv-result-label {\n  font-size: 16px;\n  color: #374151 !important;\n  font-weight: 500;\n  line-height: 1.4;\n}\n\n#shaken-simulator-v4 .skv-result-label.skv-discount-label {\n  color: #059669 !important;\n}\n\n#shaken-simulator-v4 .skv-result-value {\n  font-size: 17px;\n  font-weight: 700;\n  color: #1e293b !important;\n  font-variant-numeric: tabular-nums;\n  letter-spacing: -0.01em;\n}\n\n#shaken-simulator-v4 .skv-result-value.skv-discount {\n  color: #059669 !important;\n}\n\n#shaken-simulator-v4 .skv-result-value.skv-additional {\n  color: #dc2626 !important;\n}\n\n#shaken-simulator-v4 .skv-result-total {\n  margin-top: 40px;\n  padding: 36px 32px;\n  background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n  border: 3px solid #3b82f6;\n  border-radius: 24px;\n  text-align: center;\n  box-shadow: 0 14px 32px rgba(59, 130, 246, 0.15);\n  position: relative;\n  overflow: hidden;\n}\n\n#shaken-simulator-v4 .skv-result-total::before {\n  content: '';\n  position: absolute;\n  top: -2px;\n  left: -2px;\n  right: -2px;\n  bottom: -2px;\n  background: linear-gradient(45deg, #3b82f6, #1d4ed8, #3b82f6);\n  background-size: 200% 200%;\n  animation: skv-border-glow 2s linear infinite;\n  z-index: -1;\n  border-radius: 24px;\n}\n\n@keyframes skv-border-glow {\n  0% { background-position: 0% 50%; }\n  50% { background-position: 100% 50%; }\n  100% { background-position: 0% 50%; }\n}\n\n#shaken-simulator-v4 .skv-total-label {\n  font-size: 22px;\n  margin-bottom: 14px;\n  font-weight: 600;\n  color: #1e40af !important;\n  letter-spacing: -0.01em;\n}\n\n#shaken-simulator-v4 .skv-total-amount {\n  font-size: 48px;\n  font-weight: 800;\n  letter-spacing: -0.02em;\n  font-variant-numeric: tabular-nums;\n  color: #1e40af !important;\n  text-shadow: 0 2px 4px rgba(30, 64, 175, 0.1);\n}\n\n#shaken-simulator-v4 .skv-total-note {\n  font-size: 14px;\n  margin-top: 14px;\n  color: #64748b !important;\n  font-weight: 500;\n}\n\n#shaken-simulator-v4 .skv-cta-section {\n  margin-top: 48px;\n  text-align: center;\n}\n\n#shaken-simulator-v4 .skv-cta-text {\n  margin-bottom: 28px;\n  font-size: 16px;\n  color: #4b5563 !important;\n  font-weight: 500;\n  line-height: 1.5;\n}\n\n#shaken-simulator-v4 .skv-cta-buttons {\n  display: flex;\n  gap: 24px;\n  justify-content: center;\n}\n\n#shaken-simulator-v4 .skv-cta-button {\n  padding: 18px 36px !important;\n  border-radius: 60px;\n  font-size: 17px !important;\n  font-weight: 700 !important;\n  cursor: pointer;\n  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  text-decoration: none;\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  letter-spacing: -0.01em;\n}\n\n#shaken-simulator-v4 .skv-cta-phone {\n  background: white;\n  color: #374151 !important;\n  border: 2px solid #e5e7eb !important;\n  box-shadow: 0 6px 16px rgba(0,0,0,0.08);\n}\n\n@media (hover: hover) {\n  #shaken-simulator-v4 .skv-cta-phone:hover {\n    border-color: #3b82f6 !important;\n    color: #3b82f6 !important;\n    transform: translateY(-2px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.12);\n  }\n}\n\n#shaken-simulator-v4 .skv-cta-mail {\n  background: linear-gradient(135deg, #ff6b35, #f7931e);\n  color: white !important;\n  border: none !important;\n  box-shadow: 0 10px 24px rgba(255, 107, 53, 0.3);\n}\n\n@media (hover: hover) {\n  #shaken-simulator-v4 .skv-cta-mail:hover {\n    background: linear-gradient(135deg, #f7931e, #ff6b35);\n    transform: translateY(-2px);\n    box-shadow: 0 14px 30px rgba(255, 107, 53, 0.4);\n  }\n}\n\n#shaken-simulator-v4 .skv-warranty-section {\n  background: linear-gradient(135deg, #f0fdf4, #dcfce7);\n  border: 1px solid #86efac;\n  border-radius: 16px;\n  padding: 24px;\n  margin-top: 36px;\n}\n\n#shaken-simulator-v4 .skv-warranty-title {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  font-size: 19px !important;\n  font-weight: 700 !important;\n  color: #166534 !important;\n  margin: 0 0 14px 0 !important;\n}\n\n#shaken-simulator-v4 .skv-warranty-content {\n  color: #15803d !important;\n  font-size: 15px;\n  line-height: 1.6;\n}\n\n#shaken-simulator-v4 .skv-note {\n  margin-top: 36px;\n  padding: 24px;\n  background: #fffbeb;\n  border: 1px solid #fbbf24;\n  border-radius: 16px;\n  color: #92400e !important;\n  font-size: 14px;\n  line-height: 1.6;\n}\n\n@media (max-width: 1024px) and (min-width: 769px) {\n  #shaken-simulator-v4 .skv-card-group.skv-four-columns {\n    grid-template-columns: repeat(3, 1fr);\n  }\n}\n\n@media (max-width: 768px) {\n  #shaken-simulator-v4 .skv-body {\n    padding: 36px 24px;\n  }\n  \n  #shaken-simulator-v4 .skv-header {\n    padding: 36px 24px;\n  }\n  \n  #shaken-simulator-v4 h2 {\n    font-size: 26px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-section-header {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 14px;\n  }\n  \n  #shaken-simulator-v4 h2.skv-section-title {\n    font-size: 21px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-radio-group {\n    grid-template-columns: 1fr 1fr;\n    gap: 12px;\n  }\n  \n  #shaken-simulator-v4 .skv-radio-group.skv-three-columns {\n    grid-template-columns: 1fr 1fr;\n  }\n  \n  #shaken-simulator-v4 .skv-radio-item label {\n    font-size: 15px;\n    padding: 16px 14px;\n    height: 150px !important;\n    min-height: auto !important;\n    overflow: hidden;\n  }\n  \n  #shaken-simulator-v4 .skv-radio-item label small {\n    font-size: 12px;\n    line-height: 1.3;\n  }\n  \n  #shaken-simulator-v4 input[name=\"skv-maintenance-base\"] + label {\n    height: 165px !important;\n    min-height: auto !important;\n    padding-top: 32px !important;\n    padding-bottom: 16px !important;\n    padding-left: 14px !important;\n    padding-right: 14px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-radio-item[data-option=\"select\"] label::before {\n    top: 4px !important;\n    right: 12px !important;\n    font-size: 10px !important;\n    padding: 4px 10px !important;\n    position: absolute !important;\n  }\n  \n  #shaken-simulator-v4 input[name=\"skv-expiry\"] + label {\n    height: 150px !important;\n    min-height: auto !important;\n  }\n  \n  #shaken-simulator-v4 .skv-expired-options .skv-radio-item label {\n    height: 160px !important;\n    min-height: auto !important;\n    padding: 14px 12px;\n    font-size: 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-expired-options .skv-radio-item label small {\n    font-size: 11px;\n    line-height: 1.3;\n  }\n  \n  #shaken-simulator-v4 input[name=\"skv-weight\"] + label {\n    height: 100px !important;\n    min-height: auto !important;\n  }\n  \n  #shaken-simulator-v4 .skv-card-group,\n  #shaken-simulator-v4 .skv-card-group.skv-four-columns {\n    grid-template-columns: 1fr 1fr;\n    gap: 16px;\n  }\n  \n  #shaken-simulator-v4 .skv-card-item.skv-none-option label {\n    height: 170px !important;\n    min-height: auto !important;\n    padding: 18px 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-card-image {\n    height: 120px;\n  }\n  \n  #shaken-simulator-v4 .skv-card-content {\n    padding: 14px;\n    gap: 8px;\n  }\n  \n  #shaken-simulator-v4 .skv-card-title {\n    font-size: 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-card-description {\n    font-size: 11px;\n    padding-bottom: 10px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-header {\n    padding: 36px 28px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-header h3 {\n    font-size: 26px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-result-body {\n    padding: 36px 28px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-row {\n    padding: 18px 14px;\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 10px;\n    margin: 0 -14px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-row:hover {\n    padding-left: 14px;\n    padding-right: 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-value {\n    align-self: flex-end;\n    font-size: 16px;\n  }\n  \n  #shaken-simulator-v4 .skv-total-amount {\n    font-size: 38px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-total-label {\n    font-size: 19px;\n  }\n  \n  #shaken-simulator-v4 .skv-cta-buttons {\n    flex-direction: column;\n    gap: 18px;\n    align-items: center;\n  }\n  \n  #shaken-simulator-v4 .skv-cta-button {\n    width: 280px;\n    justify-content: center;\n  }\n  \n  #shaken-simulator-v4 .skv-calculate-button {\n    font-size: 18px;\n    padding: 18px 36px;\n  }\n  \n  #shaken-simulator-v4 .skv-inline-loading {\n    font-size: 14px;\n    padding: 12px 16px;\n  }\n}\n\n\/* iPhone SE (375px) \u5c02\u7528\u6700\u9069\u5316 *\/\n@media (max-width: 400px) {\n  #shaken-simulator-v4 .skv-body {\n    padding: 32px 18px;\n  }\n  \n  #shaken-simulator-v4 .skv-header {\n    padding: 32px 18px;\n  }\n  \n  #shaken-simulator-v4 h2 {\n    font-size: 24px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-notice {\n    font-size: 14px;\n    padding: 10px 20px;\n  }\n  \n  #shaken-simulator-v4 h2.skv-section-title {\n    font-size: 19px !important;\n    gap: 10px;\n  }\n  \n  #shaken-simulator-v4 .skv-section-icon {\n    font-size: 24px;\n  }\n  \n  #shaken-simulator-v4 .skv-section-status {\n    font-size: 12px;\n    padding: 6px 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-section-subtitle {\n    font-size: 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-form-label {\n    font-size: 15px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-header {\n    padding: 28px 20px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-header h3 {\n    font-size: 24px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-result-subtitle {\n    font-size: 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-body {\n    padding: 32px 20px;\n  }\n  \n  #shaken-simulator-v4 h4.skv-result-section-title {\n    font-size: 18px !important;\n    gap: 8px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-label {\n    font-size: 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-value {\n    font-size: 15px;\n  }\n  \n  #shaken-simulator-v4 .skv-result-total {\n    padding: 28px 20px;\n    margin-top: 32px;\n  }\n  \n  #shaken-simulator-v4 .skv-total-label {\n    font-size: 17px;\n    margin-bottom: 12px;\n  }\n  \n  #shaken-simulator-v4 .skv-total-amount {\n    font-size: 32px !important;\n    line-height: 1.2;\n  }\n  \n  #shaken-simulator-v4 .skv-total-note {\n    font-size: 13px;\n    margin-top: 12px;\n  }\n  \n  #shaken-simulator-v4 .skv-cta-section {\n    margin-top: 36px;\n  }\n  \n  #shaken-simulator-v4 .skv-cta-text {\n    font-size: 15px;\n    margin-bottom: 20px;\n  }\n  \n  #shaken-simulator-v4 .skv-cta-button {\n    width: 100% !important;\n    max-width: 280px;\n    padding: 16px 28px !important;\n    font-size: 16px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-warranty-section {\n    padding: 20px;\n    margin-top: 28px;\n  }\n  \n  #shaken-simulator-v4 .skv-warranty-title {\n    font-size: 17px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-warranty-content {\n    font-size: 14px;\n  }\n  \n  #shaken-simulator-v4 .skv-note {\n    padding: 20px;\n    margin-top: 28px;\n    font-size: 13px;\n  }\n  \n  #shaken-simulator-v4 .skv-calculate-button {\n    font-size: 17px;\n    padding: 16px 32px;\n  }\n  \n  #shaken-simulator-v4 .skv-radio-item label {\n    font-size: 14px;\n    padding: 14px 12px;\n  }\n  \n  #shaken-simulator-v4 .skv-radio-item label small {\n    font-size: 11px;\n  }\n  \n  #shaken-simulator-v4 input[name=\"skv-maintenance-base\"] + label {\n    height: 155px !important;\n    padding-top: 28px !important;\n  }\n  \n  #shaken-simulator-v4 .skv-card-item.skv-none-option label {\n    height: 160px !important;\n    padding: 16px 12px;\n  }\n  \n  #shaken-simulator-v4 .skv-card-item.skv-none-option .skv-card-title {\n    font-size: 15px;\n  }\n  \n  #shaken-simulator-v4 .skv-card-item.skv-none-option .skv-card-description {\n    font-size: 12px;\n  }\n}\n<\/style>\n\n<div class=\"skv-container\">\n  <div class=\"skv-header\">\n    <h2 id=\"e8bcb8e585a5e8bb8ae383bbe5a496e8bb8a-e8bb8ae6a49ce8b2bbe794a8e382b7e3839fe383a5e383ace383bce382bfe383bc-1\">\u8f38\u5165\u8eca\u30fb\u5916\u8eca \u8eca\u691c\u8cbb\u7528\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc<\/h2>\n    <div class=\"skv-notice\">\u6700\u77ed1\u5206\u3067\u9069\u6b63\u4fa1\u683c\u3092\u8a3a\u65ad<\/div>\n  <\/div>\n\n  <div class=\"skv-body\" id=\"skv-main-body\" style=\"display: none;\">\n    <!-- \u8eca\u4e21\u60c5\u5831\u30bb\u30af\u30b7\u30e7\u30f3 -->\n    <div class=\"skv-section-header\">\n      <h2 class=\"skv-section-title\" id=\"step-1-e8bb8ae4b8a1e68385e5a0b1-2\">\n        <span class=\"skv-section-icon\">&#x1f697;<\/span>\n        <span>STEP 1: \u8eca\u4e21\u60c5\u5831<\/span>\n      <\/h2>\n      <div class=\"skv-section-status skv-waiting\" id=\"skv-vehicle-status\" role=\"status\" aria-live=\"polite\">\n        <span>\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/span>\n      <\/div>\n    <\/div>\n    <p class=\"skv-section-subtitle\">\u8eca\u691c\u8a3c\u3092\u3054\u53c2\u7167\u306e\u4e0a\u3001\u304a\u8eca\u306e\u60c5\u5831\u3092\u6b63\u78ba\u306b\u3054\u5165\u529b\u304f\u3060\u3055\u3044<\/p>\n    \n    <!-- \u8eca\u691c\u6709\u52b9\u671f\u9650\u306e\u78ba\u8a8d -->\n    <div class=\"skv-form-group\">\n      <label class=\"skv-form-label\">\n        \u8eca\u691c\u8a3c\u306e\u6709\u52b9\u671f\u9650\u306b\u3064\u3044\u3066\n        <span class=\"skv-info-icon\" data-info=\"\u8eca\u691c\u304c\u5207\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u516c\u9053\u3092\u8d70\u884c\u3067\u304d\u306a\u3044\u305f\u3081\u8ffd\u52a0\u8cbb\u7528\u304c\u767a\u751f\u3057\u307e\u3059\" role=\"button\" aria-label=\"\u8eca\u691c\u6709\u52b9\u671f\u9650\u306e\u8aac\u660e\">i<\/span>\n      <\/label>\n      <div class=\"skv-radio-group\">\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-valid\" name=\"skv-expiry\" value=\"valid\">\n          <label for=\"skv-valid\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            <span style=\"font-size: 26px;\">&#x2705;<\/span>\n            <span>\u8eca\u691c\u8a3c\u306e\u6709\u52b9\u671f\u9650\u5185<\/span>\n            <small>\u901a\u5e38\u306e\u8eca\u691c\u8cbb\u7528<\/small>\n          <\/label>\n        <\/div>\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-expired\" name=\"skv-expiry\" value=\"expired\">\n          <label for=\"skv-expired\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            <span style=\"font-size: 26px;\">&#x26a0;&#xfe0f;<\/span>\n            <span>\u8eca\u691c\u304c\u5207\u308c\u3066\u3057\u307e\u3063\u305f<\/span>\n            <small>\u8ffd\u52a0\u8cbb\u7528\u304c\u767a\u751f\u3057\u307e\u3059<\/small>\n          <\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u8eca\u691c\u5207\u308c\u8b66\u544a -->\n    <div class=\"skv-expired-warning\" id=\"skv-expired-warning\">\n      <div class=\"skv-expired-warning-title\">\n        <span>&#x26a0;&#xfe0f;<\/span>\n        <span>\u8eca\u691c\u5207\u308c\u306e\u5834\u5408\u306e\u8ffd\u52a0\u8cbb\u7528\u306b\u3064\u3044\u3066<\/span>\n      <\/div>\n      <div class=\"skv-expired-warning-content\">\n        \u8eca\u691c\u304c\u5207\u308c\u305f\u8eca\u4e21\u306f\u516c\u9053\u3092\u8d70\u884c\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u4ee5\u4e0b\u306e\u8ffd\u52a0\u8cbb\u7528\u304c\u767a\u751f\u3057\u307e\u3059:\n      <\/div>\n      <div class=\"skv-expired-options\">\n        <div class=\"skv-radio-group\">\n          <div class=\"skv-radio-item\">\n            <input type=\"radio\" id=\"skv-temp-plate\" name=\"skv-transport\" value=\"temp\">\n            <label for=\"skv-temp-plate\">\n              <span class=\"skv-radio-indicator\"><\/span>\n              <span style=\"font-size: 22px;\">&#x1f697;<\/span>\n              <span>\u4eee\u30ca\u30f3\u30d0\u30fc\u3067\u81ea\u8d70<\/span>\n              <small>\u4eee\u30ca\u30f3\u30d0\u30fc\u53d6\u5f97\u8cbb\u7528:\u00a55,750<br>\u81ea\u8ce0\u8cac\u4fdd\u967a\u5dee\u984d:\u00a5510<\/small>\n            <\/label>\n          <\/div>\n          <div class=\"skv-radio-item\">\n            <input type=\"radio\" id=\"skv-carrier\" name=\"skv-transport\" value=\"carrier\">\n            <label for=\"skv-carrier\">\n              <span class=\"skv-radio-indicator\"><\/span>\n              <span style=\"font-size: 22px;\">&#x1f69a;<\/span>\n              <span>\u7a4d\u8f09\u8eca\u3067\u904b\u642c<\/span>\n              <small>\u7a4d\u8f09\u8eca\u8cbb\u7528:\u00a515,000~<br>\u81ea\u8ce0\u8cac\u4fdd\u967a\u5dee\u984d:\u00a5510<\/small>\n            <\/label>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    \n    <div class=\"skv-form-group\">\n      <label class=\"skv-form-label\">\n        \u8eca\u4e21\u533a\u5206\n        <span class=\"skv-info-icon\" data-info=\"\u8eca\u691c\u8a3c\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u300c\u81ea\u52d5\u8eca\u306e\u7a2e\u5225\u300d\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\" role=\"button\" aria-label=\"\u8eca\u4e21\u533a\u5206\u306e\u8aac\u660e\">i<\/span>\n      <\/label>\n      <div class=\"skv-radio-group\">\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-small\" name=\"skv-carType\" value=\"small\">\n          <label for=\"skv-small\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            <span>\u5c0f\u578b<\/span>\n          <\/label>\n        <\/div>\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-large\" name=\"skv-carType\" value=\"large\">\n          <label for=\"skv-large\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            <span>\u666e\u901a<\/span>\n          <\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"skv-form-group\">\n      <label class=\"skv-form-label\" for=\"skv-maker\">\u30e1\u30fc\u30ab\u30fc<\/label>\n      <div class=\"skv-select-wrapper\">\n        <select class=\"skv-select-box\" id=\"skv-maker\" aria-label=\"\u30e1\u30fc\u30ab\u30fc\u9078\u629e\">\n          <option value=\"\">\u30e1\u30fc\u30ab\u30fc\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/option>\n        <\/select>\n        <div class=\"skv-select-arrow\"><\/div>\n      <\/div>\n      <div class=\"skv-inline-loading\" id=\"skv-maker-loading\" role=\"status\" aria-live=\"polite\">\n        <div class=\"skv-spinner-small\"><\/div>\n        <span>\u8eca\u540d\u3092\u53d6\u5f97\u3057\u3066\u3044\u307e\u3059\u2026<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"skv-form-group skv-hidden\" id=\"skv-car-group\">\n      <label class=\"skv-form-label\" for=\"skv-car\">\u8eca\u540d<\/label>\n      <div class=\"skv-select-wrapper\">\n        <select class=\"skv-select-box\" id=\"skv-car\" disabled aria-label=\"\u8eca\u540d\u9078\u629e\">\n          <option value=\"\">\u8eca\u540d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/option>\n        <\/select>\n        <div class=\"skv-select-arrow\"><\/div>\n      <\/div>\n      <div class=\"skv-inline-loading\" id=\"skv-car-loading\" role=\"status\" aria-live=\"polite\">\n        <div class=\"skv-spinner-small\"><\/div>\n        <span>\u578b\u5f0f\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u2026<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"skv-form-group skv-hidden\" id=\"skv-model-group\">\n      <label class=\"skv-form-label\">\n        \u578b\u5f0f\n        <span class=\"skv-info-icon\" data-info=\"\u8eca\u691c\u8a3c\u306e\u300c\u578b\u5f0f\u300d\u6b04\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\" role=\"button\" aria-label=\"\u578b\u5f0f\u306e\u8aac\u660e\">i<\/span>\n      <\/label>\n      <div class=\"skv-select-wrapper\">\n        <select class=\"skv-select-box\" id=\"skv-model\" disabled aria-label=\"\u578b\u5f0f\u9078\u629e\">\n          <option value=\"\">\u578b\u5f0f\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/option>\n        <\/select>\n        <div class=\"skv-select-arrow\"><\/div>\n      <\/div>\n      <div class=\"skv-inline-loading\" id=\"skv-model-loading\" role=\"status\" aria-live=\"polite\">\n        <div class=\"skv-spinner-small\"><\/div>\n        <span>\u578b\u5f0f\u6307\u5b9a\u756a\u53f7\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u2026<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"skv-form-group skv-hidden\" id=\"skv-type-group\">\n      <label class=\"skv-form-label\">\n        \u578b\u5f0f\u6307\u5b9a\u756a\u53f7\n        <span class=\"skv-info-icon\" data-info=\"\u8eca\u691c\u8a3c\u306e\u300c\u578b\u5f0f\u6307\u5b9a\u756a\u53f7\u300d\u6b04\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\" role=\"button\" aria-label=\"\u578b\u5f0f\u6307\u5b9a\u756a\u53f7\u306e\u8aac\u660e\">i<\/span>\n      <\/label>\n      <div class=\"skv-select-wrapper\">\n        <select class=\"skv-select-box\" id=\"skv-type\" disabled aria-label=\"\u578b\u5f0f\u6307\u5b9a\u756a\u53f7\u9078\u629e\">\n          <option value=\"\">\u578b\u5f0f\u6307\u5b9a\u756a\u53f7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/option>\n        <\/select>\n        <div class=\"skv-select-arrow\"><\/div>\n      <\/div>\n      <div class=\"skv-inline-loading\" id=\"skv-type-loading\" role=\"status\" aria-live=\"polite\">\n        <div class=\"skv-spinner-small\"><\/div>\n        <span>\u985e\u5225\u533a\u5206\u756a\u53f7\u3092\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u2026<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"skv-form-group skv-hidden\" id=\"skv-category-group\">\n      <label class=\"skv-form-label\">\n        \u985e\u5225\u533a\u5206\u756a\u53f7\n        <span class=\"skv-info-icon\" data-info=\"\u8eca\u691c\u8a3c\u306e\u300c\u985e\u5225\u533a\u5206\u756a\u53f7\u300d\u6b04\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\" role=\"button\" aria-label=\"\u985e\u5225\u533a\u5206\u756a\u53f7\u306e\u8aac\u660e\">i<\/span>\n      <\/label>\n      <div class=\"skv-select-wrapper\">\n        <select class=\"skv-select-box\" id=\"skv-category\" disabled aria-label=\"\u985e\u5225\u533a\u5206\u756a\u53f7\u9078\u629e\">\n          <option value=\"\">\u985e\u5225\u533a\u5206\u756a\u53f7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/option>\n        <\/select>\n        <div class=\"skv-select-arrow\"><\/div>\n      <\/div>\n      <div class=\"skv-inline-loading\" id=\"skv-category-loading\" role=\"status\" aria-live=\"polite\">\n        <div class=\"skv-spinner-small\"><\/div>\n        <span>\u304a\u898b\u7a4d\u3082\u308a\u3092\u8a08\u7b97\u3057\u3066\u3044\u307e\u3059\u2026<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"skv-form-group skv-hidden\" id=\"skv-weight-group\">\n      <label class=\"skv-form-label\">\n        \u8eca\u4e21\u91cd\u91cf\n        <span class=\"skv-info-icon\" data-info=\"\u8eca\u691c\u8a3c\u306e\u300c\u8eca\u4e21\u91cd\u91cf\u300d\u6b04\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\" role=\"button\" aria-label=\"\u8eca\u4e21\u91cd\u91cf\u306e\u8aac\u660e\">i<\/span>\n      <\/label>\n      <p style=\"margin: 0 0 18px 0; color: #666; font-size: 15px;\">\n        \u304a\u8eca\u306e\u8a73\u7d30\u30c7\u30fc\u30bf\u304c\u306a\u3044\u305f\u3081\u3001\u8eca\u4e21\u91cd\u91cf\u304b\u3089\u6982\u7b97\u3044\u305f\u3057\u307e\u3059\n      <\/p>\n      <div class=\"skv-radio-group skv-three-columns\">\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-weight2\" name=\"skv-weight\" value=\"16400\" data-base-fee=\"66000\">\n          <label for=\"skv-weight2\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            501kg<br>~1,000kg\n          <\/label>\n        <\/div>\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-weight3\" name=\"skv-weight\" value=\"24600\" data-base-fee=\"66000\">\n          <label for=\"skv-weight3\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            1,001kg<br>~1,500kg\n          <\/label>\n        <\/div>\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-weight4\" name=\"skv-weight\" value=\"32800\" data-base-fee=\"73700\">\n          <label for=\"skv-weight4\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            1,501kg<br>~2,000kg\n          <\/label>\n        <\/div>\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-weight5\" name=\"skv-weight\" value=\"41000\" data-base-fee=\"73700\">\n          <label for=\"skv-weight5\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            2,001kg<br>~2,500kg\n          <\/label>\n        <\/div>\n        <div class=\"skv-radio-item\">\n          <input type=\"radio\" id=\"skv-weight6\" name=\"skv-weight\" value=\"49200\" data-base-fee=\"73700\">\n          <label for=\"skv-weight6\">\n            <span class=\"skv-radio-indicator\"><\/span>\n            2,501kg<br>~3,000kg\n          <\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u30aa\u30d7\u30b7\u30e7\u30f3\u6574\u5099\u30e1\u30cb\u30e5\u30fc\u30bb\u30af\u30b7\u30e7\u30f3 -->\n    <div class=\"skv-section-divider\"><\/div>\n    <div class=\"skv-section-header\">\n      <h2 class=\"skv-section-title\" id=\"step-2-e382aae38397e382b7e383a7e383b3e695b4e58299e383a1e3838be383a5e383bc-3\">\n        <span class=\"skv-section-icon\">&#x1f527;<\/span>\n        <span>STEP 2: \u30aa\u30d7\u30b7\u30e7\u30f3\u6574\u5099\u30e1\u30cb\u30e5\u30fc<\/span>\n      <\/h2>\n      <div class=\"skv-section-status skv-waiting\" id=\"skv-option-status\" role=\"status\" aria-live=\"polite\">\n        <span>\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/span>\n      <\/div>\n    <\/div>\n    <p class=\"skv-section-subtitle\">\n      \u3054\u5e0c\u671b\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u6574\u5099\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044(\u8907\u6570\u9078\u629e\u53ef)\u540c\u6642\u4f5c\u696d\u306710%\u5272\u5f15\u9069\u7528\n    <\/p>\n    \n    <div class=\"skv-radio-group\">\n      <div class=\"skv-radio-item\">\n        <input type=\"radio\" id=\"skv-maintenance-none\" name=\"skv-maintenance-base\" value=\"none\">\n        <label for=\"skv-maintenance-none\">\n          <span style=\"font-size: 26px;\">\u2713<\/span>\n          <span>\u30aa\u30d7\u30b7\u30e7\u30f3\u306a\u3057<\/span>\n          <small>\u57fa\u672c\u6574\u5099\u306e\u307f<\/small>\n        <\/label>\n      <\/div>\n      <div class=\"skv-radio-item\" data-option=\"select\">\n        <input type=\"radio\" id=\"skv-maintenance-select\" name=\"skv-maintenance-base\" value=\"select\">\n        <label for=\"skv-maintenance-select\">\n          <span style=\"font-size: 26px;\">&#x2795;<\/span>\n          <span>\u30aa\u30d7\u30b7\u30e7\u30f3\u9078\u629e<\/span>\n          <small style=\"color: #3b82f6;\">\u540c\u6642\u4f5c\u696d\u306710%\u5272\u5f15<\/small>\n        <\/label>\n      <\/div>\n    <\/div>\n\n    <div id=\"skv-maintenance-options\" style=\"display: none; margin-top: 24px;\">\n      <div class=\"skv-card-group skv-four-columns\">\n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-oil\" name=\"skv-maintenance\" value=\"oil\" data-price=\"10560\">\n          <label for=\"skv-maintenance-oil\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-engine-oil-change.jpg\" alt=\"\u30a8\u30f3\u30b8\u30f3\u30aa\u30a4\u30eb\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">\u30a8\u30f3\u30b8\u30f3\u4fdd\u8b77<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">\u30a8\u30f3\u30b8\u30f3\u30aa\u30a4\u30eb\u4ea4\u63db(\u4e0b\u629c\u304d)<\/div>\n              <div class=\"skv-card-description\">SM\u898f\u683c\u5168\u5408\u6210\u6cb93L\u4f7f\u7528\uff0b\u30ec\u30d9\u30eb\u70b9\u691c<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a510,560<\/span>\n                <span class=\"skv-card-price-sale\">\u00a59,504~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n        \n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-coolant\" name=\"skv-maintenance\" value=\"coolant\" data-price=\"14740\">\n          <label for=\"skv-maintenance-coolant\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-coolant-change.jpg\" alt=\"\u30af\u30fc\u30e9\u30f3\u30c8\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">\u30aa\u30fc\u30d0\u30fc\u30d2\u30fc\u30c8\u9632\u6b62<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">\u30af\u30fc\u30e9\u30f3\u30c8\u4ea4\u63db<\/div>\n              <div class=\"skv-card-description\">\u51b7\u5374\u6c342L\u4ea4\u63db\uff0b\u51b7\u5374\u7cfb\u7d71\u70b9\u691c<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a514,740<\/span>\n                <span class=\"skv-card-price-sale\">\u00a513,266~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n        \n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-battery\" name=\"skv-maintenance\" value=\"battery\" data-price=\"27500\">\n          <label for=\"skv-maintenance-battery\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-agm-battery-replace.jpg\" alt=\"\u30d0\u30c3\u30c6\u30ea\u30fc\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">\u59cb\u52d5\u4e0d\u826f\u3092\u4e88\u9632<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">\u30d0\u30c3\u30c6\u30ea\u30fc\u4ea4\u63db<\/div>\n              <div class=\"skv-card-description\">\u6a19\u6e96\u30d0\u30c3\u30c6\u30ea\u30fc(LN1)\uff0b\u5145\u96fb\u7cfb\u7d71\u70b9\u691c<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a527,500<\/span>\n                <span class=\"skv-card-price-sale\">\u00a524,750~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n        \n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-tire\" name=\"skv-maintenance\" value=\"tire\" data-price=\"30800\">\n          <label for=\"skv-maintenance-tire\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-tyre-change.jpg\" alt=\"\u30bf\u30a4\u30e4\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">\u5b89\u5168\u8d70\u884c\u306e\u8981<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">\u30bf\u30a4\u30e4\u4ea4\u63db\u4f5c\u696d(4\u672c)<\/div>\n              <div class=\"skv-card-description\">\u30d0\u30e9\u30f3\u30b9\u8abf\u6574\u8fbc(16\u30a4\u30f3\u30c1\u8fc4\u3001\u30bf\u30a4\u30e4\u4ee3\u5225)<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a530,800<\/span>\n                <span class=\"skv-card-price-sale\">\u00a527,720~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n        \n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-brake-fluid\" name=\"skv-maintenance\" value=\"brake-fluid\" data-price=\"18590\">\n          <label for=\"skv-maintenance-brake-fluid\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-brake-oil-change.jpg\" alt=\"\u30d6\u30ec\u30fc\u30ad\u30d5\u30eb\u30fc\u30c9\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">\u30d6\u30ec\u30fc\u30ad\u6027\u80fd\u7dad\u6301<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">\u30d6\u30ec\u30fc\u30ad\u30d5\u30eb\u30fc\u30c9\u4ea4\u63db<\/div>\n              <div class=\"skv-card-description\">\u30d5\u30eb\u30fc\u30c91L\u4ea4\u63db\uff0b\u30a8\u30a2\u629c\u304d\u4f5c\u696d<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a518,590<\/span>\n                <span class=\"skv-card-price-sale\">\u00a516,731~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n        \n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-brake-pad\" name=\"skv-maintenance\" value=\"brake-pad\" data-price=\"30800\">\n          <label for=\"skv-maintenance-brake-pad\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-brakepads-replace.jpg\" alt=\"\u30d6\u30ec\u30fc\u30ad\u30d1\u30c3\u30c9\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">\u4f4e\u30c0\u30b9\u30c8\u5bfe\u5fdc\u53ef<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">\u30d6\u30ec\u30fc\u30ad\u30d1\u30c3\u30c9\u4ea4\u63db<\/div>\n              <div class=\"skv-card-description\">\u30d5\u30ed\u30f3\u30c8\u5de6\u53f3\u4ea4\u63db(\u30d1\u30c3\u30c9\u4ee3\u8fbc)<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a530,800<\/span>\n                <span class=\"skv-card-price-sale\">\u00a527,720~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n        \n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-mission\" name=\"skv-maintenance\" value=\"mission\" data-price=\"12540\">\n          <label for=\"skv-maintenance-mission\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-mission-oil-change.jpg\" alt=\"\u30df\u30c3\u30b7\u30e7\u30f3\u30aa\u30a4\u30eb\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">\u5909\u901f\u30b9\u30e0\u30fc\u30ba<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">\u30df\u30c3\u30b7\u30e7\u30f3\u30aa\u30a4\u30eb\u4ea4\u63db<\/div>\n              <div class=\"skv-card-description\">\u9ad8\u6027\u80fd\u30ae\u30a2\u30aa\u30a4\u30eb2L\u4f7f\u7528<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a512,540<\/span>\n                <span class=\"skv-card-price-sale\">\u00a511,286~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n        \n        <div class=\"skv-card-item\">\n          <input type=\"checkbox\" id=\"skv-maintenance-atf\" name=\"skv-maintenance\" value=\"atf\" data-price=\"79200\">\n          <label for=\"skv-maintenance-atf\">\n            <img decoding=\"async\" class=\"skv-card-image\" src=\"https:\/\/ymworks.com\/new\/new\/wp-content\/uploads\/2025\/10\/img-atf-change.jpg\" alt=\"AT\u30d5\u30eb\u30fc\u30c9\u4ea4\u63db\">\n            <div class=\"skv-card-discount\">AT\u4fdd\u8b77<\/div>\n            <div class=\"skv-card-content\">\n              <div class=\"skv-card-title\">AT\u30d5\u30eb\u30fc\u30c9\u4ea4\u63db\u4f5c\u696d<\/div>\n              <div class=\"skv-card-description\">\u5727\u9001\u4ea4\u63db(\u30aa\u30a4\u30eb\u4ee312L\u8fbc)<\/div>\n              <div class=\"skv-card-prices\">\n                <span class=\"skv-card-price-original\">\u00a579,200<\/span>\n                <span class=\"skv-card-price-sale\">\u00a571,280~<\/span>\n              <\/div>\n            <\/div>\n          <\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u5272\u5f15\u30d7\u30ed\u30b0\u30e9\u30e0\u30bb\u30af\u30b7\u30e7\u30f3 -->\n    <div class=\"skv-section-divider\"><\/div>\n    <div class=\"skv-section-header\">\n      <h2 class=\"skv-section-title\" id=\"step-3-e589b2e5bc95e38397e383ade382b0e383a9e383a0-4\">\n        <span class=\"skv-section-icon\">&#x1f381;<\/span>\n        <span>STEP 3: \u5272\u5f15\u30d7\u30ed\u30b0\u30e9\u30e0<\/span>\n      <\/h2>\n      <div class=\"skv-section-status skv-waiting\" id=\"skv-discount-status\" role=\"status\" aria-live=\"polite\">\n        <span>\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/span>\n      <\/div>\n    <\/div>\n    <p class=\"skv-section-subtitle\">\n      \u9069\u7528\u3055\u308c\u308b\u5272\u5f15\u3092\u304a\u9078\u3073\u304f\u3060\u3055\u3044\u3002\u65e9\u5272\u306f\u4ed6\u306e\u5272\u5f15\u3068\u4f75\u7528\u53ef\u80fd\u3067\u3059\u3002\n    <\/p>\n    \n    <div class=\"skv-card-group skv-four-columns\">\n      <div class=\"skv-card-item skv-none-option\">\n        <input type=\"checkbox\" id=\"skv-discount-none\" name=\"skv-discount-none\" value=\"none\">\n        <label for=\"skv-discount-none\">\n          <div class=\"skv-card-title\">\u5229\u7528\u3057\u306a\u3044<\/div>\n          <div class=\"skv-card-description\">\u5272\u5f15\u3092\u9069\u7528\u3057\u306a\u3044<\/div>\n          <div class=\"skv-card-prices\">\n            <span class=\"skv-card-price-sale\" style=\"color: #666 !important;\">\u2015<\/span>\n          <\/div>\n        <\/label>\n      <\/div>\n      \n      <div class=\"skv-card-item skv-none-option\">\n        <input type=\"checkbox\" id=\"skv-discount-new\" name=\"skv-discount\" value=\"new\" data-discount=\"1000\">\n        <label for=\"skv-discount-new\">\n          <div class=\"skv-card-title\">\u521d\u3081\u3066\u306e\u304a\u5ba2\u69d8\u7279\u5178<\/div>\n          <div class=\"skv-card-description\">\u521d\u56de\u9650\u5b9a\u306e\u7279\u5225\u5272\u5f15<\/div>\n          <div class=\"skv-card-prices\">\n            <span class=\"skv-card-price-sale\" style=\"color: #059669 !important;\">\u00a51,000\u5272\u5f15<\/span>\n          <\/div>\n        <\/label>\n      <\/div>\n      \n      <div class=\"skv-card-item skv-none-option\">\n        <input type=\"checkbox\" id=\"skv-discount-repeat\" name=\"skv-discount\" value=\"repeat\" data-discount=\"2000\">\n        <label for=\"skv-discount-repeat\">\n          <div class=\"skv-card-title\">\u30ea\u30d4\u30fc\u30c8\u5272\u5f15<\/div>\n          <div class=\"skv-card-description\">2\u56de\u76ee\u4ee5\u964d\u306e\u304a\u5ba2\u69d8<\/div>\n          <div class=\"skv-card-prices\">\n            <span class=\"skv-card-price-sale\" style=\"color: #059669 !important;\">\u00a52,000\u5272\u5f15<\/span>\n          <\/div>\n        <\/label>\n      <\/div>\n      \n      <div class=\"skv-card-item skv-none-option\">\n        <input type=\"checkbox\" id=\"skv-discount-early\" name=\"skv-discount\" value=\"early\" data-discount=\"1000\">\n        <label for=\"skv-discount-early\">\n          <div class=\"skv-card-title\">\u65e9\u5272<\/div>\n          <div class=\"skv-card-description\">2\u30f6\u6708\u524d\u307e\u3067\u306e\u65e9\u671f\u3054\u4e88\u7d04\u3067\u3055\u3089\u306b\u304a\u5f97<\/div>\n          <div class=\"skv-card-prices\">\n            <span class=\"skv-card-price-sale\" style=\"color: #059669 !important;\">\u00a51,000\u5272\u5f15<\/span>\n          <\/div>\n        <\/label>\n      <\/div>\n    <\/div>\n\n    <!-- \u8a08\u7b97\u30dc\u30bf\u30f3 -->\n    <div class=\"skv-calculate-button-wrapper\">\n      <button class=\"skv-calculate-button\" id=\"skv-calculate-button\" disabled aria-label=\"\u304a\u898b\u7a4d\u3082\u308a\u91d1\u984d\u3092\u8a08\u7b97\u3059\u308b\">\n        <span>&#x1f4cb;<\/span>\n        <span>\u304a\u898b\u7a4d\u3082\u308a\u91d1\u984d\u3092\u78ba\u8a8d<\/span>\n      <\/button>\n    <\/div>\n\n    <div class=\"skv-loading-calculate\" id=\"skv-loading\" role=\"status\" aria-live=\"polite\">\n      <div class=\"skv-spinner-small\"><\/div>\n      <span>\u304a\u898b\u7a4d\u3082\u308a\u3092\u8a08\u7b97\u3057\u3066\u3044\u307e\u3059&#8230;<\/span>\n    <\/div>\n    \n    <div class=\"skv-error\" id=\"skv-error\" role=\"alert\"><\/div>\n    \n    <div class=\"skv-result\" id=\"skv-result\"><\/div>\n  <\/div>\n\n  <div class=\"skv-initial-loading\" id=\"skv-initial-loading\">\n    <div class=\"skv-spinner\"><\/div>\n    <div>\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059&#8230;<\/div>\n  <\/div>\n<\/div>\n\n<!-- \u60c5\u5831\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7 -->\n<div class=\"skv-info-overlay\" id=\"skv-info-overlay\"><\/div>\n<div class=\"skv-info-popup\" id=\"skv-info-popup\" role=\"dialog\" aria-modal=\"true\">\n  <div class=\"skv-info-popup-content\" id=\"skv-info-popup-content\"><\/div>\n  <button class=\"skv-info-popup-close\" id=\"skv-info-popup-close\">\u9589\u3058\u308b<\/button>\n<\/div>\n<\/div>\n<script>\n(function() {\n  'use strict';\n\n  \/\/ \u5b9a\u6570\u306e\u5b9a\u7fa9\n  const TIMEOUT_DURATION = 30000;\n  const MAX_CACHE_SIZE = 50;\n  const MAX_DISCOUNTS = 3;\n  const API_RETRY_COUNT = 3;\n  const API_RETRY_DELAY = 1000;\n\n  const API_URL = document.getElementById('shaken-simulator-v4').getAttribute('data-api-url');\n\n  const DEFAULT_FEES = {\n    jibai: 17650,\n    jibai25: 18160,\n    stampFee: 2300,\n    testerFee: 4400,\n    agencyFee: 19800,\n    baseFee: 70290,\n    tempPlateFee: 5750,\n    carrierFee: 15000,\n    jibaiDiff: 510\n  };\n\n  const MAINTENANCE_PRICES = {\n    oil: 10560,\n    coolant: 14740,\n    battery: 27500,\n    tire: 30800,\n    'brake-fluid': 18590,\n    'brake-pad': 30800,\n    mission: 12540,\n    atf: 79200\n  };\n\n  const MAINTENANCE_NAMES = {\n    oil: '\u30a8\u30f3\u30b8\u30f3\u30aa\u30a4\u30eb\u4ea4\u63db(\u4e0b\u629c\u304d)',\n    coolant: '\u30af\u30fc\u30e9\u30f3\u30c8\u4ea4\u63db',\n    battery: '\u30d0\u30c3\u30c6\u30ea\u30fc\u4ea4\u63db',\n    tire: '\u30bf\u30a4\u30e4\u4ea4\u63db\u4f5c\u696d(4\u672c)',\n    'brake-fluid': '\u30d6\u30ec\u30fc\u30ad\u30d5\u30eb\u30fc\u30c9\u4ea4\u63db',\n    'brake-pad': '\u30d6\u30ec\u30fc\u30ad\u30d1\u30c3\u30c9\u4ea4\u63db',\n    mission: '\u30df\u30c3\u30b7\u30e7\u30f3\u30aa\u30a4\u30eb\u4ea4\u63db',\n    atf: 'AT\u30d5\u30eb\u30fc\u30c9\u4ea4\u63db\u4f5c\u696d'\n  };\n\n  const DISCOUNT_NAMES = {\n    new: '\u521d\u3081\u3066\u306e\u304a\u5ba2\u69d8\u7279\u5178',\n    repeat: '\u30ea\u30d4\u30fc\u30c8\u5272\u5f15',\n    early: '\u65e9\u5272(\u65e9\u671f\u3054\u4e88\u7d04\u7279\u5178)'\n  };\n\n  const elements = {\n    mainBody: document.getElementById('skv-main-body'),\n    initialLoading: document.getElementById('skv-initial-loading'),\n    loading: document.getElementById('skv-loading'),\n    error: document.getElementById('skv-error'),\n    result: document.getElementById('skv-result'),\n    carTypeSmall: document.getElementById('skv-small'),\n    carTypeLarge: document.getElementById('skv-large'),\n    maker: document.getElementById('skv-maker'),\n    car: document.getElementById('skv-car'),\n    model: document.getElementById('skv-model'),\n    type: document.getElementById('skv-type'),\n    category: document.getElementById('skv-category'),\n    calculateButton: document.getElementById('skv-calculate-button'),\n    maintenanceOptions: document.getElementById('skv-maintenance-options'),\n    maintenanceNone: document.getElementById('skv-maintenance-none'),\n    maintenanceSelect: document.getElementById('skv-maintenance-select'),\n    discountNone: document.getElementById('skv-discount-none'),\n    infoOverlay: document.getElementById('skv-info-overlay'),\n    infoPopup: document.getElementById('skv-info-popup'),\n    infoPopupContent: document.getElementById('skv-info-popup-content'),\n    infoPopupClose: document.getElementById('skv-info-popup-close'),\n    vehicleStatus: document.getElementById('skv-vehicle-status'),\n    optionStatus: document.getElementById('skv-option-status'),\n    discountStatus: document.getElementById('skv-discount-status'),\n    expiredWarning: document.getElementById('skv-expired-warning')\n  };\n\n  const loadingElements = {\n    maker: document.getElementById('skv-maker-loading'),\n    car: document.getElementById('skv-car-loading'),\n    model: document.getElementById('skv-model-loading'),\n    type: document.getElementById('skv-type-loading'),\n    category: document.getElementById('skv-category-loading')\n  };\n\n  const groups = {\n    car: document.getElementById('skv-car-group'),\n    model: document.getElementById('skv-model-group'),\n    type: document.getElementById('skv-type-group'),\n    category: document.getElementById('skv-category-group'),\n    weight: document.getElementById('skv-weight-group')\n  };\n\n  let vehicleReady = false;\n  let currentDetails = null;\n  let apiTimeouts = {};\n  let resultDisplayed = false;\n  let apiCache = {};\n\n  document.addEventListener('DOMContentLoaded', initialize);\n\n  function initialize() {\n    init();\n    setupEventListeners();\n    updateCalculateButton();\n    setupInfoIcons();\n    updateSectionStatus();\n  }\n\n  function setupInfoIcons() {\n    document.querySelectorAll('.skv-info-icon').forEach(icon => {\n      icon.addEventListener('click', (e) => {\n        e.stopPropagation();\n        const info = icon.getAttribute('data-info');\n        showInfoPopup(info);\n      });\n    });\n\n    elements.infoPopupClose.addEventListener('click', hideInfoPopup);\n    elements.infoOverlay.addEventListener('click', hideInfoPopup);\n  }\n\n  function showInfoPopup(message) {\n    elements.infoPopupContent.textContent = message;\n    elements.infoOverlay.classList.add('skv-show');\n    elements.infoPopup.classList.add('skv-show');\n  }\n\n  function hideInfoPopup() {\n    elements.infoOverlay.classList.remove('skv-show');\n    elements.infoPopup.classList.remove('skv-show');\n  }\n\n  function updateSelectBoxState() {\n    const selectBoxes = ['maker', 'car', 'model', 'type', 'category'];\n    \n    selectBoxes.forEach(name => {\n      const selectElement = elements[name];\n      if (selectElement && selectElement.value && selectElement.value !== '') {\n        selectElement.classList.add('skv-selected');\n      } else {\n        selectElement.classList.remove('skv-selected');\n      }\n    });\n  }\n\n  function updateSectionStatus() {\n    const expiry = document.querySelector('input[name=\"skv-expiry\"]:checked');\n    const transport = document.querySelector('input[name=\"skv-transport\"]:checked');\n    const carTypeSelected = document.querySelector('input[name=\"skv-carType\"]:checked');\n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    const model = elements.model.value;\n    const typeNumber = elements.type.value;\n    const category = elements.category.value;\n    const weightSelected = document.querySelector('input[name=\"skv-weight\"]:checked');\n    \n    const isLoading = Object.values(loadingElements).some(el => el.classList.contains('skv-show'));\n    \n    let vehicleInfoComplete = false;\n    \n    if (expiry) {\n      if (expiry.value === 'expired' && !transport) {\n        vehicleInfoComplete = false;\n      } else {\n        if (!groups.weight.classList.contains('skv-hidden')) {\n          vehicleInfoComplete = carTypeSelected && weightSelected;\n        }\n        else if (carTypeSelected && maker && carName && model) {\n          if (groups.type.classList.contains('skv-hidden')) {\n            vehicleInfoComplete = true;\n          }\n          else if (!groups.type.classList.contains('skv-hidden') && typeNumber) {\n            if (groups.category.classList.contains('skv-hidden')) {\n              vehicleInfoComplete = true;\n            }\n            else if (!groups.category.classList.contains('skv-hidden') && category) {\n              vehicleInfoComplete = true;\n            }\n          }\n        }\n      }\n    }\n    \n    if (isLoading && (carTypeSelected || maker || carName || model)) {\n      elements.vehicleStatus.classList.remove('skv-waiting', 'skv-active', 'skv-completed');\n      elements.vehicleStatus.classList.add('skv-checking');\n      elements.vehicleStatus.innerHTML = '<span class=\"skv-section-status-icon\"><\/span><span>\u78ba\u8a8d\u4e2d<\/span>';\n    } else if (vehicleInfoComplete) {\n      elements.vehicleStatus.classList.remove('skv-waiting', 'skv-active', 'skv-checking');\n      elements.vehicleStatus.classList.add('skv-completed');\n      elements.vehicleStatus.innerHTML = '<span>\u2713<\/span><span>\u9078\u629e\u5b8c\u4e86<\/span>';\n    } else if (expiry || carTypeSelected || maker || carName || model || typeNumber || category) {\n      elements.vehicleStatus.classList.remove('skv-waiting', 'skv-completed', 'skv-checking');\n      elements.vehicleStatus.classList.add('skv-active');\n      elements.vehicleStatus.innerHTML = '<span class=\"skv-section-status-icon\"><\/span><span>\u5165\u529b\u4e2d<\/span>';\n    } else {\n      elements.vehicleStatus.classList.remove('skv-active', 'skv-completed', 'skv-checking');\n      elements.vehicleStatus.classList.add('skv-waiting');\n      elements.vehicleStatus.innerHTML = '<span>\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/span>';\n    }\n    \n    const maintenanceNoneChecked = elements.maintenanceNone.checked;\n    const maintenanceSelectChecked = elements.maintenanceSelect.checked;\n    const maintenanceCheckedCount = document.querySelectorAll('input[name=\"skv-maintenance\"]:checked').length;\n    \n    if (maintenanceNoneChecked) {\n      elements.optionStatus.classList.remove('skv-waiting', 'skv-active');\n      elements.optionStatus.classList.add('skv-completed');\n      elements.optionStatus.innerHTML = '<span>\u2713<\/span><span>\u9078\u629e\u5b8c\u4e86(\u306a\u3057)<\/span>';\n    } else if (maintenanceSelectChecked && maintenanceCheckedCount > 0) {\n      elements.optionStatus.classList.remove('skv-waiting', 'skv-active');\n      elements.optionStatus.classList.add('skv-completed');\n      elements.optionStatus.innerHTML = `<span>\u2713<\/span><span>\u9078\u629e\u5b8c\u4e86(${maintenanceCheckedCount}\u3064)<\/span>`;\n    } else if (maintenanceSelectChecked && maintenanceCheckedCount === 0) {\n      elements.optionStatus.classList.remove('skv-waiting', 'skv-completed');\n      elements.optionStatus.classList.add('skv-active');\n      elements.optionStatus.innerHTML = '<span class=\"skv-section-status-icon\"><\/span><span>\u9078\u629e\u4e2d<\/span>';\n    } else {\n      elements.optionStatus.classList.remove('skv-active', 'skv-completed');\n      elements.optionStatus.classList.add('skv-waiting');\n      elements.optionStatus.innerHTML = '<span>\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/span>';\n    }\n    \n    const discountNoneChecked = elements.discountNone.checked;\n    const discountCheckedCount = document.querySelectorAll('input[name=\"skv-discount\"]:checked').length;\n    \nif (discountNoneChecked) {\n      elements.discountStatus.classList.remove('skv-waiting', 'skv-active');\n      elements.discountStatus.classList.add('skv-completed');\n      elements.discountStatus.innerHTML = '<span>\u2713<\/span><span>\u9078\u629e\u5b8c\u4e86(\u306a\u3057)<\/span>';\n    } else if (discountCheckedCount > 0) {\n      elements.discountStatus.classList.remove('skv-waiting', 'skv-active');\n      elements.discountStatus.classList.add('skv-completed');\n      elements.discountStatus.innerHTML = `<span>\u2713<\/span><span>\u9078\u629e\u5b8c\u4e86(${discountCheckedCount}\u3064)<\/span>`;\n    } else {\n      elements.discountStatus.classList.remove('skv-active', 'skv-completed');\n      elements.discountStatus.classList.add('skv-waiting');\n      elements.discountStatus.innerHTML = '<span>\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044<\/span>';\n    }\n    \n    updateSelectBoxState();\n  }\n\n  function setupEventListeners() {\n    document.querySelectorAll('input[name=\"skv-expiry\"]').forEach(radio => {\n      radio.addEventListener('change', () => {\n        if (radio.value === 'expired') {\n          elements.expiredWarning.classList.add('skv-show');\n        } else {\n          elements.expiredWarning.classList.remove('skv-show');\n          document.querySelectorAll('input[name=\"skv-transport\"]').forEach(r => r.checked = false);\n        }\n        checkVehicleReady();\n        updateSectionStatus();\n        updateCalculateButton();\n        if (resultDisplayed && currentDetails) {\n          updateResultUI(currentDetails, false);\n        }\n      });\n    });\n\n    document.querySelectorAll('input[name=\"skv-transport\"]').forEach(radio => {\n      radio.addEventListener('change', () => {\n        checkVehicleReady();\n        updateSectionStatus();\n        updateCalculateButton();\n        if (resultDisplayed && currentDetails) {\n          updateResultUI(currentDetails, false);\n        }\n      });\n    });\n\n    elements.maker.addEventListener('change', onMakerChange);\n    elements.car.addEventListener('change', onCarChange);\n    elements.model.addEventListener('change', onModelChange);\n    elements.type.addEventListener('change', onTypeChange);\n    elements.category.addEventListener('change', onCategoryChange);\n    elements.calculateButton.addEventListener('click', onCalculateClick);\n    \n    document.querySelectorAll('input[name=\"skv-carType\"]').forEach(radio => {\n      radio.addEventListener('change', () => {\n        checkVehicleReady();\n        updateSectionStatus();\n        updateCalculateButton();\n        if (resultDisplayed && currentDetails) {\n          updateResultUI(currentDetails, false);\n        }\n      });\n    });\n    \n    document.querySelectorAll('input[name=\"skv-weight\"]').forEach(radio => {\n      radio.addEventListener('change', () => {\n        onWeightChange();\n        updateSectionStatus();\n        if (resultDisplayed) {\n          const weightTaxFromRadio = radio.value;\n          const baseFeeFromRadio = radio.getAttribute('data-base-fee');\n          const carDetail = {\n            ...DEFAULT_FEES,\n            success: true,\n            weightTax: Number(weightTaxFromRadio),\n            baseFee: Number(baseFeeFromRadio)\n          };\n          currentDetails = carDetail;\n          updateResultUI(carDetail, false);\n        }\n      });\n    });\n    \n    \/\/ \u30aa\u30d7\u30b7\u30e7\u30f3\u9078\u629e\u306e\u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc\uff08\u4fee\u6b63\u7248\uff09\n    elements.maintenanceNone.addEventListener('change', () => {\n      if (elements.maintenanceNone.checked) {\n        elements.maintenanceSelect.checked = false;\n        elements.maintenanceOptions.style.display = 'none';\n        document.querySelectorAll('input[name=\"skv-maintenance\"]').forEach(cb => {\n          cb.checked = false;\n        });\n      }\n      updateSectionStatus();\n      updateCalculateButton();\n      if (resultDisplayed && currentDetails) {\n        updateResultUI(currentDetails, false);\n      }\n    });\n    \n    elements.maintenanceSelect.addEventListener('change', () => {\n      if (elements.maintenanceSelect.checked) {\n        elements.maintenanceNone.checked = false;\n        elements.maintenanceOptions.style.display = 'block';\n      } else {\n        elements.maintenanceOptions.style.display = 'none';\n      }\n      updateSectionStatus();\n      updateCalculateButton();\n      if (resultDisplayed && currentDetails) {\n        updateResultUI(currentDetails, false);\n      }\n    });\n    \n    document.querySelectorAll('input[name=\"skv-maintenance\"]').forEach(checkbox => {\n      checkbox.addEventListener('change', () => {\n        \/\/ \u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u304c\u30c1\u30a7\u30c3\u30af\u3055\u308c\u305f\u3089\u81ea\u52d5\u7684\u306b\u300c\u30aa\u30d7\u30b7\u30e7\u30f3\u9078\u629e\u300d\u3092ON\u306b\n        const anyChecked = document.querySelectorAll('input[name=\"skv-maintenance\"]:checked').length > 0;\n        if (anyChecked) {\n          elements.maintenanceSelect.checked = true;\n          elements.maintenanceNone.checked = false;\n          elements.maintenanceOptions.style.display = 'block';\n        }\n        \n        updateSectionStatus();\n        updateCalculateButton();\n        if (resultDisplayed && currentDetails) {\n          updateResultUI(currentDetails, false);\n        }\n      });\n    });\n    \n    elements.discountNone.addEventListener('change', () => {\n      if (elements.discountNone.checked) {\n        document.querySelectorAll('input[name=\"skv-discount\"]').forEach(cb => {\n          cb.checked = false;\n        });\n      }\n      updateSectionStatus();\n      updateCalculateButton();\n      if (resultDisplayed && currentDetails) {\n        updateResultUI(currentDetails, false);\n      }\n    });\n    \n    document.querySelectorAll('input[name=\"skv-discount\"]').forEach(checkbox => {\n      checkbox.addEventListener('change', () => {\n        const value = checkbox.value;\n        \n        if (checkbox.checked) {\n          elements.discountNone.checked = false;\n          \n          if (value === 'new') {\n            const repeatCb = document.getElementById('skv-discount-repeat');\n            if (repeatCb) repeatCb.checked = false;\n          }\n          if (value === 'repeat') {\n            const newCb = document.getElementById('skv-discount-new');\n            if (newCb) newCb.checked = false;\n          }\n        }\n        \n        updateSectionStatus();\n        updateCalculateButton();\n        if (resultDisplayed && currentDetails) {\n          updateResultUI(currentDetails, false);\n        }\n      });\n    });\n  }\n\n  async function init() {\n    try {\n      const makers = await apiCallWithRetry('getMakers');\n      populateSelect(elements.maker, makers);\n      \n      elements.initialLoading.style.display = 'none';\n      elements.mainBody.style.display = 'block';\n      \n    } catch (error) {\n      showError('\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u304b\u3089\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      elements.initialLoading.style.display = 'none';\n      elements.mainBody.style.display = 'block';\n    }\n  }\n\n  function populateSelect(selectElement, options) {\n    const firstOption = selectElement.options[0];\n    selectElement.innerHTML = '';\n    selectElement.appendChild(firstOption);\n    \n    options.forEach(option => {\n      const optionElement = document.createElement('option');\n      optionElement.value = option;\n      optionElement.textContent = option;\n      selectElement.appendChild(optionElement);\n    });\n    \n    selectElement.disabled = false;\n  }\n\n  function addToCache(key, value) {\n    const cacheKeys = Object.keys(apiCache);\n    if (cacheKeys.length >= MAX_CACHE_SIZE) {\n      delete apiCache[cacheKeys[0]];\n    }\n    apiCache[key] = value;\n  }\n\n  async function apiCallWithRetry(action, params = {}, retries = API_RETRY_COUNT) {\n    for (let i = 0; i < retries; i++) {\n      try {\n        return await apiCall(action, params);\n      } catch (error) {\n        if (i === retries - 1) throw error;\n        await new Promise(resolve => setTimeout(resolve, API_RETRY_DELAY * (i + 1)));\n      }\n    }\n  }\n\n  async function apiCall(action, params = {}) {\n    const cacheKey = `${action}_${JSON.stringify(params)}`;\n    \n    if (apiCache[cacheKey]) {\n      return Promise.resolve(apiCache[cacheKey]);\n    }\n    \n    const url = new URL(API_URL);\n    url.searchParams.append('action', action);\n    Object.keys(params).forEach(key => {\n      if (params[key]) {\n        url.searchParams.append(key, params[key]);\n      }\n    });\n    \n    const timeoutPromise = new Promise((_, reject) => {\n      const timeoutId = setTimeout(() => {\n        reject(new Error('API\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3057\u307e\u3057\u305f(30\u79d2)'));\n      }, TIMEOUT_DURATION);\n      \n      apiTimeouts[action] = timeoutId;\n    });\n    \n    const fetchPromise = fetch(url.toString())\n      .then(response => {\n        if (apiTimeouts[action]) {\n          clearTimeout(apiTimeouts[action]);\n          delete apiTimeouts[action];\n        }\n        if (!response.ok) {\n          throw new Error(`HTTP ${response.status}`);\n        }\n        return response.json();\n      })\n      .then(result => {\n        if (result.success === false && result.error) {\n          throw new Error(result.error);\n        }\n        addToCache(cacheKey, result);\n        return result;\n      });\n    \n    return Promise.race([fetchPromise, timeoutPromise]);\n  }\n\n  async function onMakerChange() {\n    const maker = elements.maker.value;\n    resetFromStep('car');\n    updateSectionStatus();\n    updateCalculateButton();\n    if (!maker) {\n      return;\n    }\n    \n    if (maker === '\u305d\u306e\u4ed6\u306e\u30e1\u30fc\u30ab\u30fc') {\n      showWeightGroup();\n      updateSectionStatus();\n      return;\n    }\n    \n    try {\n      showInlineLoading('maker');\n      const cars = await apiCallWithRetry('getCars', { maker });\n      populateSelect(elements.car, cars);\n      showGroup('car');\n      updateSectionStatus();\n    } catch (error) {\n      if (error.message.includes('\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8')) {\n        showError('\u8eca\u540d\u306e\u53d6\u5f97\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u3059\u304e\u3066\u3044\u307e\u3059\u3002\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u74b0\u5883\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      } else {\n        showError('\u8eca\u540d\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u304b\u3089\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      }\n    } finally {\n      hideInlineLoading('maker');\n    }\n  }\n\n  async function onCarChange() {\n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    resetFromStep('model');\n    updateSectionStatus();\n    updateCalculateButton();\n    if (!carName) return;\n    \n    if (carName === '\u305d\u306e\u4ed6\u306e\u30e2\u30c7\u30eb') {\n      showWeightGroup();\n      updateSectionStatus();\n      return;\n    }\n    \n    try {\n      showInlineLoading('car');\n      const models = await apiCallWithRetry('getModels', { maker, carName });\n      populateSelect(elements.model, models);\n      showGroup('model');\n      updateSectionStatus();\n    } catch (error) {\n      if (error.message.includes('\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8')) {\n        showError('\u578b\u5f0f\u306e\u53d6\u5f97\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u3059\u304e\u3066\u3044\u307e\u3059\u3002\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u74b0\u5883\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      } else {\n        showError('\u578b\u5f0f\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u304b\u3089\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      }\n    } finally {\n      hideInlineLoading('car');\n    }\n  }\n\n  async function onModelChange() {\n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    const model = elements.model.value;\n    resetFromStep('type');\n    updateSectionStatus();\n    updateCalculateButton();\n    if (!model) return;\n    \n    if (model === '\u8a72\u5f53\u306a\u3057') {\n      showWeightGroup();\n      updateSectionStatus();\n      return;\n    }\n    \n    try {\n      showInlineLoading('model');\n      const typeNumbers = await apiCallWithRetry('getTypeNumbers', { maker, carName, model });\n      \n      if (typeNumbers.length === 1 && typeNumbers[0] === '\u8a72\u5f53\u306a\u3057') {\n        setTimeout(() => {\n          hideInlineLoading('model');\n          checkVehicleReady();\n          updateSectionStatus();\n          updateCalculateButton();\n        }, 500);\n        return;\n      }\n      \n      populateSelect(elements.type, typeNumbers);\n      showGroup('type');\n      updateSectionStatus();\n    } catch (error) {\n      if (error.message.includes('\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8')) {\n        showError('\u578b\u5f0f\u6307\u5b9a\u756a\u53f7\u306e\u53d6\u5f97\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u3059\u304e\u3066\u3044\u307e\u3059\u3002\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u74b0\u5883\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      } else {\n        showError('\u578b\u5f0f\u6307\u5b9a\u756a\u53f7\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u304b\u3089\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      }\n    } finally {\n      hideInlineLoading('model');\n    }\n  }\n\n  async function onTypeChange() {\n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    const model = elements.model.value;\n    const typeNumber = elements.type.value;\n    resetFromStep('category');\n    updateSectionStatus();\n    updateCalculateButton();\n    if (!typeNumber) return;\n    \n    if (typeNumber === '\u8a72\u5f53\u306a\u3057') {\n      showWeightGroup();\n      updateSectionStatus();\n      return;\n    }\n    \n    try {\n      showInlineLoading('type');\n      const categories = await apiCallWithRetry('getCategories', { maker, carName, model, typeNumber });\n      \n      if (categories.length === 1 && categories[0] === '\u8a72\u5f53\u306a\u3057') {\n        setTimeout(() => {\n          hideInlineLoading('type');\n          checkVehicleReady();\n          updateSectionStatus();\n          updateCalculateButton();\n        }, 500);\n        return;\n      }\n      \n      populateSelect(elements.category, categories);\n      showGroup('category');\n      updateSectionStatus();\n    } catch (error) {\n      if (error.message.includes('\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8')) {\n        showError('\u985e\u5225\u533a\u5206\u756a\u53f7\u306e\u53d6\u5f97\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u3059\u304e\u3066\u3044\u307e\u3059\u3002\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u74b0\u5883\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      } else {\n        showError('\u985e\u5225\u533a\u5206\u756a\u53f7\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u304b\u3089\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n      }\n    } finally {\n      hideInlineLoading('type');\n    }\n  }\n\n  function onCategoryChange() {\n    const category = elements.category.value;\n    if (!category) {\n      vehicleReady = false;\n      updateCalculateButton();\n      updateSectionStatus();\n      return;\n    }\n    if (category === '\u8a72\u5f53\u306a\u3057') {\n      showWeightGroup();\n      updateSectionStatus();\n      return;\n    }\n    checkVehicleReady();\n    updateSectionStatus();\n    updateCalculateButton();\n  }\n\n  function onWeightChange() {\n    checkVehicleReady();\n    updateSectionStatus();\n    updateCalculateButton();\n  }\n\n  function checkVehicleReady() {\n    const expiry = document.querySelector('input[name=\"skv-expiry\"]:checked');\n    const transport = document.querySelector('input[name=\"skv-transport\"]:checked');\n    const carTypeSelected = document.querySelector('input[name=\"skv-carType\"]:checked');\n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    const model = elements.model.value;\n    const typeNumber = elements.type.value;\n    const category = elements.category.value;\n    const weightRadio = document.querySelector('input[name=\"skv-weight\"]:checked');\n    \n    if (!expiry || !carTypeSelected) {\n      vehicleReady = false;\n      return;\n    }\n    \n    if (expiry.value === 'expired' && !transport) {\n      vehicleReady = false;\n      return;\n    }\n    \n    if (!groups.weight.classList.contains('skv-hidden')) {\n      vehicleReady = weightRadio !== null;\n      return;\n    }\n    \n    if (!maker || !carName || !model) {\n      vehicleReady = false;\n      return;\n    }\n    \n    if (groups.type.classList.contains('skv-hidden')) {\n      vehicleReady = true;\n      return;\n    }\n    \n    if (!typeNumber) {\n      vehicleReady = false;\n      return;\n    }\n    \n    if (groups.category.classList.contains('skv-hidden')) {\n      vehicleReady = true;\n      return;\n    }\n    \n    vehicleReady = category !== null && category !== '';\n  }\n\n  function updateCalculateButton() {\n    const maintenanceSelected = elements.maintenanceNone.checked || \n      (elements.maintenanceSelect.checked && document.querySelectorAll('input[name=\"skv-maintenance\"]:checked').length > 0);\n    const discountSelected = elements.discountNone.checked || \n      document.querySelectorAll('input[name=\"skv-discount\"]:checked').length > 0;\n    \n    elements.calculateButton.disabled = !(vehicleReady && maintenanceSelected && discountSelected);\n  }\n\n  async function onCalculateClick() {\n    if (!vehicleReady) return;\n    \n    hideResult();\n    hideError();\n    showLoading();\n    resultDisplayed = false;\n    \n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    const model = elements.model.value;\n    const typeNumber = elements.type.value;\n    const category = elements.category.value;\n    const weightRadio = document.querySelector('input[name=\"skv-weight\"]:checked');\n    const weightTaxFromRadio = weightRadio ? weightRadio.value : null;\n    const baseFeeFromRadio = weightRadio ? weightRadio.getAttribute('data-base-fee') : null;\n    \n    if (!groups.weight.classList.contains('skv-hidden') && weightTaxFromRadio) {\n      const carDetail = {\n        ...DEFAULT_FEES,\n        success: true,\n        weightTax: Number(weightTaxFromRadio),\n        baseFee: Number(baseFeeFromRadio)\n      };\n      currentDetails = carDetail;\n      hideLoading();\n      updateResultUI(carDetail, true);\n      resultDisplayed = true;\n      return;\n    }\n    \n    if (maker && carName && model) {\n      try {\n        const carDetail = await apiCallWithRetry('getCarDetail', { maker, carName, model, typeNumber, category });\n        if (carDetail.success) {\n          currentDetails = carDetail;\n          updateResultUI(carDetail, true);\n          resultDisplayed = true;\n        } else if (carDetail.isOther) {\n          showWeightGroup();\n        } else {\n          showError('\u8eca\u4e21\u30c7\u30fc\u30bf\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u304b\u3089\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n        }\n      } catch (error) {\n        if (error.message.includes('\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8')) {\n          showError('\u6599\u91d1\u8a08\u7b97\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u3059\u304e\u3066\u3044\u307e\u3059\u3002\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u74b0\u5883\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n        } else {\n          showError('\u6599\u91d1\u8a08\u7b97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u7d4c\u3063\u3066\u304b\u3089\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002');\n        }\n      } finally {\n        hideLoading();\n      }\n    }\n  }\n\n  function updateResultUI(details, shouldScroll = true) {\n    const expiry = document.querySelector('input[name=\"skv-expiry\"]:checked');\n    const transport = document.querySelector('input[name=\"skv-transport\"]:checked');\n    const isLargeCar = elements.carTypeLarge.checked;\n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    const carType = isLargeCar ? '\u666e\u901a' : '\u5c0f\u578b';\n    const isExpired = expiry && expiry.value === 'expired';\n    \n    const maintenanceItems = document.querySelectorAll('input[name=\"skv-maintenance\"]:checked');\n    const discountItems = document.querySelectorAll('input[name=\"skv-discount\"]:checked');\n    \n    let jibai = DEFAULT_FEES.jibai;\n    if (isExpired) {\n      jibai = DEFAULT_FEES.jibai25;\n    }\n    \n    const weightTax = details.weightTax;\n    const stamp = DEFAULT_FEES.stampFee;\n    \n    let maintenanceTotal = 0;\n    let maintenanceDiscount = 0;\n    \n    if (elements.maintenanceSelect.checked && maintenanceItems.length > 0) {\n      maintenanceItems.forEach(item => {\n        const originalPrice = MAINTENANCE_PRICES[item.value];\n        const discountedPrice = Math.round(originalPrice * 0.9);\n        maintenanceTotal += discountedPrice;\n        maintenanceDiscount += (originalPrice - discountedPrice);\n      });\n    }\n    \n    let expiredAdditionalCost = 0;\n    if (isExpired && transport) {\n      expiredAdditionalCost += DEFAULT_FEES.jibaiDiff;\n      if (transport.value === 'temp') {\n        expiredAdditionalCost += DEFAULT_FEES.tempPlateFee;\n      } else if (transport.value === 'carrier') {\n        expiredAdditionalCost += DEFAULT_FEES.carrierFee;\n      }\n    }\n    \n    let discountTotal = 0;\n    if (discountItems.length > 0) {\n      discountItems.forEach(item => {\n        const discount = Number(item.getAttribute('data-discount'));\n        discountTotal += discount;\n      });\n    }\n    \n    const subtotal = details.baseFee + maintenanceTotal + details.agencyFee + details.testerFee + \n                     weightTax + jibai + stamp + expiredAdditionalCost;\n    const total = subtotal - discountTotal;\n    \n    const resultHTML = generateResultHTML(details, total, maintenanceItems, maintenanceDiscount, discountItems, discountTotal, isExpired, transport, maker, carName, carType);\n    elements.result.innerHTML = resultHTML;\n    \n    showResult(shouldScroll);\n  }\n\n  function generateResultHTML(details, total, maintenanceItems, maintenanceDiscount, discountItems, discountTotal, isExpired, transport, maker, carName, carType) {\n    const expiredText = isExpired ? '(\u8eca\u691c\u5207\u308c)' : '';\n    const displayCarInfo = maker && carName && carName !== '\u305d\u306e\u4ed6\u306e\u30e2\u30c7\u30eb' ? \n      `${maker} ${carName}(${carType}\u8eca)${expiredText}` : \n      `\u8eca\u4e21\u91cd\u91cf\u306b\u3088\u308b\u6982\u7b97(${carType}\u8eca)${expiredText}`;\n    \n    const hasApproximateItems = maintenanceItems.length > 0 || \n      (isExpired && transport && transport.value === 'carrier') ||\n      (!maker || !carName || carName === '\u305d\u306e\u4ed6\u306e\u30e2\u30c7\u30eb');\n    const totalDisplayText = hasApproximateItems ? `\u00a5${total.toLocaleString()}~` : `\u00a5${total.toLocaleString()}`;\n    \n    let maintenanceRowsHTML = '';\n    if (elements.maintenanceSelect.checked && maintenanceItems.length > 0) {\n      maintenanceItems.forEach((item, index) => {\n        const originalPrice = MAINTENANCE_PRICES[item.value];\n        const needsBorder = true;\n        \n        maintenanceRowsHTML += `\n          <div class=\"skv-result-row ${needsBorder ? 'skv-has-border' : ''}\">\n            <span class=\"skv-result-label\">${MAINTENANCE_NAMES[item.value]}<\/span>\n            <span class=\"skv-result-value\">\u00a5${originalPrice.toLocaleString()}<\/span>\n          <\/div>\n        `;\n      });\n      \n      if (maintenanceDiscount > 0) {\n        maintenanceRowsHTML += `\n          <div class=\"skv-result-row\">\n            <span class=\"skv-result-label skv-discount-label\">\u30aa\u30d7\u30b7\u30e7\u30f3\u540c\u6642\u4f5c\u696d\u5272\u5f15(10%OFF)<\/span>\n            <span class=\"skv-result-value skv-discount\">-\u00a5${maintenanceDiscount.toLocaleString()}<\/span>\n          <\/div>\n        `;\n      }\n    }\n    \n    let expiredSectionHTML = '';\n    if (isExpired && transport) {\n      const jibaiDiff = DEFAULT_FEES.jibaiDiff;\n      let transportCostHTML = '';\n      \n      if (transport.value === 'temp') {\n        transportCostHTML = `\n          <div class=\"skv-result-row\">\n            <span class=\"skv-result-label\">\u4eee\u30ca\u30f3\u30d0\u30fc\u53d6\u5f97\u8cbb\u7528<\/span>\n            <span class=\"skv-result-value skv-additional\">+\u00a5${DEFAULT_FEES.tempPlateFee.toLocaleString()}<\/span>\n          <\/div>\n        `;\n      } else if (transport.value === 'carrier') {\n        transportCostHTML = `\n          <div class=\"skv-result-row\">\n            <span class=\"skv-result-label\">\u7a4d\u8f09\u8eca\u904b\u642c\u8cbb\u7528<\/span>\n            <span class=\"skv-result-value skv-additional\">+\u00a5${DEFAULT_FEES.carrierFee.toLocaleString()}~<\/span>\n          <\/div>\n        `;\n      }\n      \n      expiredSectionHTML = `\n        <div class=\"skv-result-section\">\n          <h4 class=\"skv-result-section-title\" id=\"e8bb8ae6a49ce58887e3828ce381abe4bcb4e38186e8bfbde58aa0e8b2bbe794a8-5\">\n            <span>&#x26a0;&#xfe0f;<\/span>\n            \u8eca\u691c\u5207\u308c\u306b\u4f34\u3046\u8ffd\u52a0\u8cbb\u7528\n          <\/h4>\n          <div class=\"skv-result-row ${transportCostHTML ? 'skv-has-border' : ''}\">\n            <span class=\"skv-result-label\">\u81ea\u8ce0\u8cac\u4fdd\u967a\u5dee\u984d(1\u30f6\u6708\u5206)<\/span>\n            <span class=\"skv-result-value skv-additional\">+\u00a5${jibaiDiff.toLocaleString()}<\/span>\n          <\/div>\n          ${transportCostHTML}\n        <\/div>\n      `;\n    }\n    \n    let discountSectionHTML = '';\n    if (discountTotal > 0) {\n      let discountRowsHTML = '';\n      \n      discountItems.forEach((item, index) => {\n        const discount = Number(item.getAttribute('data-discount'));\n        const needsBorder = index < discountItems.length - 1;\n        discountRowsHTML += `\n          <div class=\"skv-result-row ${needsBorder ? 'skv-has-border' : ''}\">\n            <span class=\"skv-result-label skv-discount-label\">${DISCOUNT_NAMES[item.value]}<\/span>\n            <span class=\"skv-result-value skv-discount\">-\u00a5${discount.toLocaleString()}<\/span>\n          <\/div>\n        `;\n      });\n      \n      discountSectionHTML = `\n        <div class=\"skv-result-section\">\n          <h4 class=\"skv-result-section-title skv-discount-title\" id=\"e589b2e5bc95e383bbe789b9e585b8-6\">\n            <span>&#x1f381;<\/span>\n            \u5272\u5f15\u30fb\u7279\u5178\n          <\/h4>\n          ${discountRowsHTML}\n        <\/div>\n      `;\n    }\n    \n    const jibaiLabel = isExpired ? '\u81ea\u8ce0\u8cac\u4fdd\u967a\u6599 (25\u30f6\u6708)' : '\u81ea\u8ce0\u8cac\u4fdd\u967a\u6599 (24\u30f6\u6708)';\n    const jibai = isExpired ? DEFAULT_FEES.jibai25 : DEFAULT_FEES.jibai;\n    \n    return `\n      <div class=\"skv-result-header\">\n        <h3 id=\"e3818ae8a68be7a98de38282e3828ae98791e9a18d-7\">\u304a\u898b\u7a4d\u3082\u308a\u91d1\u984d<\/h3>\n        <div class=\"skv-result-subtitle\">${displayCarInfo}<\/div>\n      <\/div>\n      <div class=\"skv-result-body\">\n        <div class=\"skv-result-section\">\n          <h4 class=\"skv-result-section-title\" id=\"e782b9e6a49ce695b4e58299e8b2bbe794a8-e7a88ee8bebc-8\">\n            <span>&#x1f6e0;&#xfe0f;<\/span>\n            \u70b9\u691c\u6574\u5099\u8cbb\u7528 (\u7a0e\u8fbc)\n          <\/h4>\n          <div class=\"skv-result-row ${maintenanceRowsHTML ? 'skv-has-border' : ''}\">\n            <span class=\"skv-result-label\">\u57fa\u672c\u70b9\u691c\u6574\u5099\u6599<\/span>\n            <span class=\"skv-result-value\">\u00a5${details.baseFee.toLocaleString()}<\/span>\n          <\/div>\n          ${maintenanceRowsHTML}\n        <\/div>\n        \n        <div class=\"skv-result-section\">\n          <h4 class=\"skv-result-section-title\" id=\"e8bb8ae6a49ce4bba3e8a18ce8b2bbe794a8-e7a88ee8bebc-9\">\n            <span>&#x1f4dd;<\/span>\n            \u8eca\u691c\u4ee3\u884c\u8cbb\u7528 (\u7a0e\u8fbc)\n          <\/h4>\n          <div class=\"skv-result-row skv-has-border\">\n            <span class=\"skv-result-label\">\u4ee3\u884c\u624b\u6570\u6599<\/span>\n            <span class=\"skv-result-value\">\u00a5${details.agencyFee.toLocaleString()}<\/span>\n          <\/div>\n          <div class=\"skv-result-row\">\n            <span class=\"skv-result-label\">\u30c6\u30b9\u30bf\u30fc\u4ee3<\/span>\n            <span class=\"skv-result-value\">\u00a5${details.testerFee.toLocaleString()}<\/span>\n          <\/div>\n        <\/div>\n        \n        <div class=\"skv-result-section\">\n          <h4 class=\"skv-result-section-title\" id=\"e6b395e5ae9ae8abb8e8b2bbe794a8-e99d9ee8aab2e7a88e-10\">\n            <span>&#x1f3db;&#xfe0f;<\/span>\n            \u6cd5\u5b9a\u8af8\u8cbb\u7528 (\u975e\u8ab2\u7a0e)\n          <\/h4>\n          <div class=\"skv-result-row skv-has-border\">\n            <span class=\"skv-result-label\">\u81ea\u52d5\u8eca\u91cd\u91cf\u7a0e<\/span>\n            <span class=\"skv-result-value\">\u00a5${details.weightTax.toLocaleString()}<\/span>\n          <\/div>\n          <div class=\"skv-result-row skv-has-border\">\n            <span class=\"skv-result-label\">${jibaiLabel}<\/span>\n            <span class=\"skv-result-value\">\u00a5${jibai.toLocaleString()}<\/span>\n          <\/div>\n          <div class=\"skv-result-row\">\n            <span class=\"skv-result-label\">\u5370\u7d19\u4ee3<\/span>\n            <span class=\"skv-result-value\">\u00a5${DEFAULT_FEES.stampFee.toLocaleString()}<\/span>\n          <\/div>\n        <\/div>\n        \n        ${expiredSectionHTML}\n        ${discountSectionHTML}\n        \n        <div class=\"skv-result-total\">\n          <div class=\"skv-total-label\">\u8eca\u691c\u8cbb\u7528\u306e\u76ee\u5b89<\/div>\n          <div class=\"skv-total-amount\">${totalDisplayText}<\/div>\n          <div class=\"skv-total-note\">\u203b \u90e8\u54c1\u4ea4\u63db\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u5225\u9014\u8cbb\u7528\u304c\u767a\u751f\u3057\u307e\u3059<\/div>\n        <\/div>\n        \n        <div class=\"skv-cta-section\">\n          <p class=\"skv-cta-text\">\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u5185\u5bb9\u3067\u7121\u6599\u898b\u7a4d\u308a<br>\u304a\u6c17\u8efd\u306b\u3054\u76f8\u8ac7\u304f\u3060\u3055\u3044\u3002<\/p>\n          <div class=\"skv-cta-buttons\">\n            <a href=\"tel:0723633381\" class=\"skv-cta-button skv-cta-phone\">\n              &#x1f4de; \u96fb\u8a71\u3067\u76f8\u8ac7\u3059\u308b\n            <\/a>\n            <button type=\"button\" class=\"skv-cta-button skv-cta-mail\" id=\"skv-mail-button\">\n              &#x2709;&#xfe0f; \u30e1\u30fc\u30eb\u3067\u554f\u3044\u5408\u308f\u305b\n            <\/button>\n          <\/div>\n        <\/div>\n        \n        <div class=\"skv-warranty-section\">\n          <div class=\"skv-warranty-title\">\n            <span>&#x1f6e1;&#xfe0f;<\/span>\n            <span>\u5b89\u5fc3\u306e\u6574\u5099\u4fdd\u8a3c\u4ed8\u304d<\/span>\n          <\/div>\n          <div class=\"skv-warranty-content\">\n            \u8eca\u691c\u6574\u5099\u5f8c3\u30f6\u6708\/3,000km\u306e\u4fdd\u8a3c\u4ed8\u304d\u3002\u30a8\u30f3\u30b8\u30f3\u3001\u30c8\u30e9\u30f3\u30b9\u30df\u30c3\u30b7\u30e7\u30f3\u3001\u30d6\u30ec\u30fc\u30ad\u306a\u3069\u4e3b\u8981\u90e8\u54c1\u306e\u4e0d\u5177\u5408\u3092\u7121\u511f\u4fee\u7406\u3044\u305f\u3057\u307e\u3059\u3002\n          <\/div>\n        <\/div>\n        \n        <div class=\"skv-note\">\n          <strong>\u3010\u3054\u6ce8\u610f\u4e8b\u9805\u3011<\/strong><br>\n          \u203b 2025\u5e744\u67081\u65e5\u73fe\u5728\u306e\u6cd5\u5b9a\u8cbb\u7528\u3092\u57fa\u306b\u8a66\u7b97\u3057\u3066\u3044\u307e\u3059\u3002<br>\n          \u203b \u521d\u5ea6\u767b\u9332\u304b\u308913\u5e74\/18\u5e74\u3092\u7d4c\u904e\u3057\u305f\u8eca\u4e21\u3001\u30a8\u30b3\u30ab\u30fc\u6e1b\u7a0e\u5bfe\u8c61\u8eca\u4e21\u306f\u81ea\u52d5\u8eca\u91cd\u91cf\u7a0e\u304c\u7570\u306a\u308a\u307e\u3059\u3002<br>\n          \u203b \u8ffd\u52a0\u6574\u5099\u30fb\u90e8\u54c1\u4ea4\u63db\u30fb\u518d\u691c\u67fb\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3001\u5225\u9014\u8cbb\u7528\u304c\u767a\u751f\u3057\u307e\u3059\u3002<br>\n          \u203b \u6599\u91d1\u306f\u4e88\u544a\u306a\u304f\u5909\u66f4\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\n        <\/div>\n      <\/div>\n    `;\n  }\n\n  function resetFromStep(step) {\n    const steps = ['car', 'model', 'type', 'category', 'weight'];\n    const fromIndex = steps.indexOf(step);\n    \n    Object.keys(apiTimeouts).forEach(key => {\n      clearTimeout(apiTimeouts[key]);\n      delete apiTimeouts[key];\n    });\n    \n    for (let i = fromIndex; i < steps.length; i++) {\n      const currentStep = steps[i];\n      if (currentStep === 'weight') {\n        document.querySelectorAll('input[name=\"skv-weight\"]').forEach(radio => {\n          radio.checked = false;\n        });\n      } else {\n        const selectElement = elements[currentStep];\n        if (selectElement) {\n          selectElement.selectedIndex = 0;\n          selectElement.disabled = true;\n        }\n      }\n      if (groups[currentStep]) {\n        groups[currentStep].classList.add('skv-hidden');\n      }\n    }\n    hideResult();\n    vehicleReady = false;\n    currentDetails = null;\n    resultDisplayed = false;\n    updateCalculateButton();\n    updateSectionStatus();\n  }\n\n  function showGroup(groupName) {\n    if (groups[groupName]) {\n      groups[groupName].classList.remove('skv-hidden');\n    }\n  }\n\n  function showWeightGroup() {\n    showGroup('weight');\n    hideResult();\n    resultDisplayed = false;\n  }\n\n  function showLoading() {\n    elements.loading.classList.add('skv-show');\n  }\n\n  function hideLoading() {\n    elements.loading.classList.remove('skv-show');\n  }\n\n  function showInlineLoading(elementName) {\n    if (loadingElements[elementName]) {\n      loadingElements[elementName].classList.add('skv-show');\n      updateSectionStatus();\n    }\n  }\n\n  function hideInlineLoading(elementName) {\n    if (loadingElements[elementName]) {\n      loadingElements[elementName].classList.remove('skv-show');\n      updateSectionStatus();\n    }\n  }\n\n  function showError(message) {\n    elements.error.textContent = message;\n    elements.error.classList.add('skv-show');\n  }\n\n  function hideError() {\n    elements.error.classList.remove('skv-show');\n  }\n\n  function showResult(shouldScroll = true) {\n    hideError();\n    elements.result.classList.add('skv-show');\n    \n    \/\/ shouldScroll\u304ctrue\u306e\u5834\u5408\u306e\u307f\u30b9\u30af\u30ed\u30fc\u30eb\n    if (shouldScroll) {\n      elements.result.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    }\n    \n    const mailButton = document.getElementById('skv-mail-button');\n    if (mailButton) {\n      mailButton.addEventListener('click', handleMailButtonClick);\n    }\n  }\n\n  function hideResult() {\n    elements.result.classList.remove('skv-show');\n  }\n\n  function handleMailButtonClick() {\n    if (!currentDetails) {\n      alert('\u307e\u305a\u304a\u898b\u7a4d\u3082\u308a\u3092\u8a08\u7b97\u3057\u3066\u304f\u3060\u3055\u3044\u3002');\n      return;\n    }\n\n    const expiry = document.querySelector('input[name=\"skv-expiry\"]:checked');\n    const transport = document.querySelector('input[name=\"skv-transport\"]:checked');\n    const isLargeCar = elements.carTypeLarge.checked;\n    const maker = elements.maker.value;\n    const carName = elements.car.value;\n    const model = elements.model.value;\n    const carType = isLargeCar ? '\u666e\u901a' : '\u5c0f\u578b';\n    const isExpired = expiry && expiry.value === 'expired';\n    \n    const maintenanceItems = document.querySelectorAll('input[name=\"skv-maintenance\"]:checked');\n    const discountItems = document.querySelectorAll('input[name=\"skv-discount\"]:checked');\n\n    let message = '\u4ee5\u4e0b\u306e\u7c21\u6613\u898b\u7a4d\u306e\u5185\u5bb9\u3067\u6b63\u5f0f\u306a\u304a\u898b\u7a4d\u3082\u308a\u3092\u304a\u9858\u3044\u3044\u305f\u3057\u307e\u3059\u3002\\n\\n';\n    message += '\u3010\u8eca\u4e21\u306e\u73fe\u72b6\u30fb\u6c17\u306b\u306a\u308b\u70b9\u3011(\u4f8b:\u7570\u97f3\u304c\u3059\u308b\u3001\u30aa\u30a4\u30eb\u6f0f\u308c\u7b49)\\n';\n    message += '\\n\\n';\n    message += '\u3010\u3054\u5e0c\u671b\u306e\u5165\u5eab\u6642\u671f\u3011(\u4f8b:\u6765\u9031\u4e2d\u3001\u6708\u672b\u307e\u3067\u3001\u25cb\u6708\u25cb\u65e5\u9803\u7b49)\\n';\n    message += '\\n\\n';\n    message += '\u3010\u305d\u306e\u4ed6\u3054\u8cea\u554f\u30fb\u3054\u8981\u671b\u3011\\n';\n    message += '\\n\\n';\n    message += '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n';\n    message += '\u25a0 \u3054\u5e0c\u671b\u306e\u8eca\u691c\u5185\u5bb9\\n';\n    message += '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n';\n    \n    const expiredText = isExpired ? '(\u8eca\u691c\u5207\u308c)' : '';\n    const displayCarInfo = maker && carName && carName !== '\u305d\u306e\u4ed6\u306e\u30e2\u30c7\u30eb' ? \n      `${maker} ${carName}(${carType}\u8eca)${expiredText}` : \n      `\u8eca\u4e21\u91cd\u91cf\u306b\u3088\u308b\u6982\u7b97(${carType}\u8eca)${expiredText}`;\n    \n    message += `\u8eca\u4e21\u60c5\u5831: ${displayCarInfo}\\n`;\n    if (model && model !== '\u8a72\u5f53\u306a\u3057' && model !== '\u305d\u306e\u4ed6\u306e\u30e2\u30c7\u30eb') {\n      message += `\u578b\u5f0f: ${model}\\n`;\n    }\n    \n    if (isExpired) {\n      message += `\\n\u3010\u8eca\u691c\u5207\u308c\u3011\\n`;\n      message += `\u8eca\u691c\u6709\u52b9\u671f\u9650: \u671f\u9650\u5207\u308c\\n`;\n      if (transport) {\n        if (transport.value === 'temp') {\n          message += `\u904b\u642c\u65b9\u6cd5: \u4eee\u30ca\u30f3\u30d0\u30fc\u3067\u81ea\u8d70\\n`;\n        } else if (transport.value === 'carrier') {\n          message += `\u904b\u642c\u65b9\u6cd5: \u7a4d\u8f09\u8eca\u3067\u904b\u642c\\n`;\n        }\n      }\n    } else {\n      message += `\u8eca\u691c\u6709\u52b9\u671f\u9650: \u6709\u52b9\u671f\u9650\u5185\\n`;\n    }\n    \n    message += `\\n\u3010\u8cbb\u7528\u5185\u8a33\u3011\\n`;\n    message += `\u57fa\u672c\u70b9\u691c\u6574\u5099\u6599: \u00a5${currentDetails.baseFee.toLocaleString()}\\n`;\n    message += `\u4ee3\u884c\u624b\u6570\u6599: \u00a5${currentDetails.agencyFee.toLocaleString()}\\n`;\n    message += `\u30c6\u30b9\u30bf\u30fc\u4ee3: \u00a5${currentDetails.testerFee.toLocaleString()}\\n`;\n    message += `\u81ea\u52d5\u8eca\u91cd\u91cf\u7a0e: \u00a5${currentDetails.weightTax.toLocaleString()}\\n`;\n    \n    const jibai = isExpired ? DEFAULT_FEES.jibai25 : DEFAULT_FEES.jibai;\n    const jibaiLabel = isExpired ? '\u81ea\u8ce0\u8cac\u4fdd\u967a\u6599(25\u30f6\u6708)' : '\u81ea\u8ce0\u8cac\u4fdd\u967a\u6599(24\u30f6\u6708)';\n    message += `${jibaiLabel}: \u00a5${jibai.toLocaleString()}\\n`;\n    message += `\u5370\u7d19\u4ee3: \u00a5${DEFAULT_FEES.stampFee.toLocaleString()}\\n`;\n\n    if (elements.maintenanceSelect.checked && maintenanceItems.length > 0) {\n      message += '\\n\u3010\u8ffd\u52a0\u30aa\u30d7\u30b7\u30e7\u30f3\u6574\u5099\u3011\\n';\n      let maintenanceOriginalTotal = 0;\n      let maintenanceDiscountTotal = 0;\n      \n      maintenanceItems.forEach(item => {\n        const originalPrice = MAINTENANCE_PRICES[item.value];\n        maintenanceOriginalTotal += originalPrice;\n        message += `\u30fb${MAINTENANCE_NAMES[item.value]}: \u00a5${originalPrice.toLocaleString()}\\n`;\n      });\n      \n      maintenanceDiscountTotal = Math.round(maintenanceOriginalTotal * 0.1);\n      message += `\\n\u30aa\u30d7\u30b7\u30e7\u30f3\u540c\u6642\u4f5c\u696d\u5272\u5f15(10%OFF): -\u00a5${maintenanceDiscountTotal.toLocaleString()}\\n`;\n    }\n\n    if (isExpired && transport) {\n      message += '\\n\u3010\u8eca\u691c\u5207\u308c\u306b\u4f34\u3046\u8ffd\u52a0\u8cbb\u7528\u3011\\n';\n      message += `\u30fb\u81ea\u8ce0\u8cac\u4fdd\u967a\u5dee\u984d(1\u30f6\u6708\u5206): +\u00a5${DEFAULT_FEES.jibaiDiff.toLocaleString()}\\n`;\n      \n      if (transport.value === 'temp') {\n        message += `\u30fb\u4eee\u30ca\u30f3\u30d0\u30fc\u53d6\u5f97\u8cbb\u7528: +\u00a5${DEFAULT_FEES.tempPlateFee.toLocaleString()}\\n`;\n      } else if (transport.value === 'carrier') {\n        message += `\u30fb\u7a4d\u8f09\u8eca\u904b\u642c\u8cbb\u7528: +\u00a5${DEFAULT_FEES.carrierFee.toLocaleString()}~\\n`;\n      }\n    }\n\n    if (discountItems.length > 0) {\n      message += '\\n\u3010\u9069\u7528\u5272\u5f15\u3011\\n';\n      discountItems.forEach(item => {\n        const discount = Number(item.getAttribute('data-discount'));\n        message += `\u30fb${DISCOUNT_NAMES[item.value]}: -\u00a5${discount.toLocaleString()}\\n`;\n      });\n    }\n\n    let maintenanceTotal = 0;\n    if (elements.maintenanceSelect.checked && maintenanceItems.length > 0) {\n      maintenanceItems.forEach(item => {\n        const originalPrice = MAINTENANCE_PRICES[item.value];\n        const discountedPrice = Math.round(originalPrice * 0.9);\n        maintenanceTotal += discountedPrice;\n      });\n    }\n    \n    let expiredAdditionalCost = 0;\n    if (isExpired && transport) {\n      expiredAdditionalCost += DEFAULT_FEES.jibaiDiff;\n      if (transport.value === 'temp') {\n        expiredAdditionalCost += DEFAULT_FEES.tempPlateFee;\n      } else if (transport.value === 'carrier') {\n        expiredAdditionalCost += DEFAULT_FEES.carrierFee;\n      }\n    }\n    \n    let discountTotal = 0;\n    if (discountItems.length > 0) {\n      discountItems.forEach(item => {\n        const discount = Number(item.getAttribute('data-discount'));\n        discountTotal += discount;\n      });\n    }\n    \n    const subtotal = currentDetails.baseFee + maintenanceTotal + currentDetails.agencyFee + \n                     currentDetails.testerFee + currentDetails.weightTax + jibai + \n                     DEFAULT_FEES.stampFee + expiredAdditionalCost;\n    const total = subtotal - discountTotal;\n    \n    const hasApproximateItems = maintenanceItems.length > 0 || \n      (isExpired && transport && transport.value === 'carrier') ||\n      (!maker || !carName || carName === '\u305d\u306e\u4ed6\u306e\u30e2\u30c7\u30eb');\n    const totalDisplayText = hasApproximateItems ? `\u00a5${total.toLocaleString()}~` : `\u00a5${total.toLocaleString()}`;\n    \n    message += `\\n\u3010\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u6982\u7b97\u5408\u8a08\u3011\\n`;\n    message += `${totalDisplayText}(\u7a0e\u8fbc)\\n`;\n    message += '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\\n';\n\n    const saveData = {\n      maker: maker || '',\n      model: carName || '',\n      message: message\n    };\n\n    try {\n      sessionStorage.setItem('shaken_estimate_data', JSON.stringify(saveData));\n      window.location.href = 'https:\/\/ymworks.com\/new\/contact\/';\n    } catch (e) {\n      console.error('Storage Error:', e);\n      window.location.href = 'https:\/\/ymworks.com\/new\/contact\/';\n    }\n  }\n\n})();\n<\/script>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"#ymworks-intro-section * { box-sizing: border-box; } #ymworks-intro-section { font-family: -apple-system, BlinkMacSystemFont, &#8216;Segoe UI&#8217;, Roboto, Arial, sans-serif; max-width: 1200px; margin: 0 auto 40px; padding: 0 20px; color: #333; line-height: 1.8; } #ymworks-intro-section p { margin: 0 0 20px 0; font-size: 16px; l&hellip;","protected":false},"author":6,"featured_media":37862,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-45933","page","type-page","status-publish","has-post-thumbnail"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/pages\/45933"}],"collection":[{"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/comments?post=45933"}],"version-history":[{"count":0,"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/pages\/45933\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/media\/37862"}],"wp:attachment":[{"href":"https:\/\/ymworks.com\/new\/wp-json\/wp\/v2\/media?parent=45933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}