@charset "UTF-8";/*----------------------------------------------------------更新日：2024年1月24日=PC(960以上)=PC & タブレット(960以下)=スマホ(768px以下)-------------------------------------------------------------*//*==================================================================  1. Variables & Base Styles (共通設定)===================================================================*/ :root {  --main-gradient: linear-gradient(130deg, #071e82 0%, #3eb634 100%);  --btn-gradient: linear-gradient(130deg, #021B79 0%, #00B4DB 50%, #009E60 100%);  --primary-color: #021260; /* Deep Blue/Black */  --primary-subcolor: #3eb634; /* Deep Green/Black */  --accent-color: #0ea5e9; /* Tech Blue/Cyan */  --bg-light: #f8fafc;  --text-color: #000000;  --white: #ffffff;  --max-width: 960px;}* {  box-sizing: border-box;  margin: 0;  padding: 0;}body {  color: var(--text-color);  line-height: 1.8;  background-color: var(--white);}a {  text-decoration: none;  color: inherit;  transition: 0.3s;}ul {  list-style: none;}img {  max-width: 100%;  height: auto;  display: block;}/* Utilities / Layout */.container {  max-width: var(--max-width);  margin: 0 auto;  padding: 5em 0;}.section-title {  text-align: center;  font-size: 2em;  font-weight: 700;  margin-bottom: 3em;  color: var(--primary-color);  position: relative;}.section-title::after {  content: '';  display: block;  width: 60px;  height: 4px;  background: var(--accent-color);  margin: 15px auto 0;}.bg_gra01 {  color: #ffffff;  padding: .2em .5em;  border-radius: 4px;  background: linear-gradient(to right, #55c3c7, #0071bc);  -webkit-box-decoration-break: clone;  box-decoration-break: clone;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  .container {    padding: 3em 15px;  }  .section-title {    font-size: 1.6em;    margin-bottom: 1.5em;  }}/*==================================================================  2. Header (ヘッダー)===================================================================*/.header {  position: sticky;  top: 0;  background: rgba(255, 255, 255, 0.95);  backdrop-filter: blur(10px);  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);  z-index: 1000;  padding: 15px 0;}.header-inner {  display: flex;  justify-content: space-between;  align-items: center;}.nav ul {  display: flex;}.nav a:hover {  color: var(--accent-color);}.header-btn {  background: var(--primary-color);  color: var(--white);  border-radius: 4px;}@media (max-width: 768px) {  .header-inner {    flex-direction: column;  }  .nav ul {    flex-wrap: wrap;    justify-content: center;  }}/*==================================================================  3. Hero / Top Page (#keyv)===================================================================*/.hero {  background-color: #071e82;  background-image: url("../img/keyv_bg.png");  background-repeat: no-repeat;  background-position: center center;  background-size: cover;  position: relative;  z-index: 0;  color: var(--white);  padding: 1em 0 2em;  position: relative;  overflow: hidden;}.hero::before {  content: '';  position: absolute;  top: 0;  left: 0;  width: 100%;  height: 100%;  z-index: -1;  background: linear-gradient(130deg, rgba(7, 30, 130, 0.5), rgba(62, 182, 52, 0.4), rgba(7, 30, 130, 0.5), rgba(62, 182, 52, 0.4));  background-size: 400% 400%;  animation: moyamoyaGradient 12s ease infinite;}@keyframes moyamoyaGradient {  0% {    background-position: 0% 50%;  }  50% {    background-position: 100% 50%;  }  100% {    background-position: 0% 50%;  }}.hero-content {  display: flex;  align-items: center;  justify-content: space-between;  gap: 2em;  width: 100%;  max-width: var(--max-width);  margin: 0 auto;}.hero-text-area {  width: 50%;  z-index: 10;  display: flex;  flex-direction: column;  align-items: center;  color: var(--white);  text-align: center;  line-height: 1.4;}.hero-title_main {  font-size: 3em;  font-weight: 700;  font-family: 'Roboto', sans-serif;  display: block;  letter-spacing: 0.05em;}.hero-title_sub {  font-size: 2em;  font-weight: 700;  display: block;  margin-bottom: 0.5em;}.hero-points-cards {  display: flex;  justify-content: center;  gap: 0.3em;  width: 90%;}.point-card {  background: var(--main-gradient);  border: 2px solid rgba(255, 255, 255, 0.8);  transform: skewX(-10deg);  padding: 20px 5px;  text-align: center;  flex: 1;  width: 0;  min-width: 0;  box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.2);  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  gap: 1em;}.point-card > * {  transform: skewX(10deg);}.card-icon-area {  line-height: 1;  width: 4em;  height: 4em;  display: flex;  align-items: center;  justify-content: center;  flex-shrink: 0;}.card-icon {}.card-text-area {  font-size: 1em;  font-weight: 700;  line-height: 1.4;  white-space: nowrap;}.hero-visual-area {  width: 50%;  position: relative;  z-index: 5;}.pc-mockup {  position: relative;  width: 100%;  margin: 5em auto 0;}.frame-image {  position: relative;  z-index: 2;  width: 100%;  height: auto;  display: block;  pointer-events: none;}.screen-video {  position: absolute;  z-index: 1;  top: 44%;  left: 50%;  transform: translate(-50%, -50%);  width: 80%;  height: 80%;  object-fit: cover;}.pc-bubble {  width: auto;  max-width: 90%;  display: inline-block;  position: absolute;  z-index: 20;  top: -5em;  right: 0;  background: var(--white);  color: var(--primary-color);  border: 3px solid var(--primary-color);  font-weight: 700;  font-size: 1em;  padding: 0.5em 2em;  border-radius: 2px;  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);  white-space: nowrap;  text-align: center;}.pc-bubble::after {  content: '';  position: absolute;  bottom: -1em;  right: 5em;  border-width: 1em 1em 0 1em;  border-style: solid;  border-color: var(--primary-color) transparent transparent transparent;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  .hero {    padding: 60px 0;    text-align: center;  }  .hero-content {    flex-direction: column;    gap: 0;    padding: 0 1em;  }  .hero-text-area {    width: 100%;    text-align: center;    order: 1;  }  .hero-title_main {    3em  }  .hero-title_sub {    2em  }  .hero-points-cards {    justify-content: center;     padding-left: 0;    gap: 10px;  }  .point-card {    width: auto;     flex: 1;    padding: 15px 10px;  }  .card-icon-area {    width: 50px;    height: 50px;    font-size: 2em;  }  .card-text-area {    font-size: 0.85em;  }  .hero-visual-area {    width: 100%;    order: 2;    margin-top: 3em;  }  .pc-bubble {    top: -6em;    right: 50%;    transform: translateX(50%);    white-space: normal;    line-height: 1.4;    width: 100%;  }  .pc-bubble::after {    right: 50%;    transform: translateX(50%);    bottom: -1.1em;  }}/*==================================================================  4. About / Overview (#about)===================================================================*/#about {  background: var(--bg-light);}.about-box {  border: 3px solid var(--accent-color);  padding: 40px;  background-color: #fff;  box-shadow: inset 0 0 0 6px #fff, inset 0 0 0 7px var(--accent-color);}.about-flex {  display: flex;  align-items: flex-start;  justify-content: space-between;  gap: 2em;}.about-txt {  width: 40%;  text-align: left;}.about-sub-title {  color: var(--accent-color);  font-weight: 700;  font-size: .875em;  margin-bottom: 0.5em;  display: inline-block;}.about-main-title {  font-size: 1.5em;  font-weight: 700;  line-height: 1.5;  color: var(--primary-color);  margin-bottom: 1em;}.about-desc p {  font-size: 1em;  line-height: 1.5;  color: var(--text-color);  margin-bottom: 0;}.about-img {  width: 55%;}.about-img img {  width: 100%;  height: auto;  border-radius: 5px;  object-fit: cover;}/* Video Section */.video-wrapper {  width: 80%;  max-width: 960px;  margin: 0 auto;  aspect-ratio: 16 / 9;}.video-wrapper iframe {  width: 100%;  height: 100%;  display: block;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  .about-box {    padding: 20px;    border-width: 2px;  }  .about-flex {    flex-direction: column-reverse; /* 画像を上に、テキストを下に */    gap: 20px;  }  .about-txt, .about-img {    width: 100%;    text-align: left;  }  /* スマホでは画像を少し小さく見せる場合 */  .about-img {    max-width: 300px;    margin: 0 auto;  }  .about-main-title {    font-size: 1.4em;    margin: 0 0 0.5em 0 ;  }  .overview-text {    font-size: 1em;    text-align: left; /* スマホでは左寄せの方が読みやすい場合あり */  }  .video-wrapper {    width: 100%;    padding: 0 15px;  }}/*==================================================================  5. Feature (#feature) - Sticky Layout===================================================================*/.feature-layout {  display: flex;  align-items: flex-start;   justify-content: space-between;  gap: 60px; /* 左右の余白 */  position: relative;}/* 左側サイドバー（固定） */.feature-sidebar {  width: 30%;  flex-shrink: 0;  position: -webkit-sticky;  position: sticky;  top: 100px;}.feature-nav-list {  list-style: none;  padding: 0;  margin: 0;  border-top: 1px solid #ccc;}.feature-nav-list li {  border-bottom: 1px solid #ccc;  margin: 0;}.feature-nav-list a {  display: block;  padding: 20px 0;  text-decoration: none;  font-weight: 500;  transition: color 0.3s;  position: relative;  font-size: 0.875em;}.feature-nav-list a span {  font-family: 'Roboto', sans-serif;}.feature-nav-list a:hover {  color: var(--accent-color);}.feature-nav-list a::after {  content: '';  position: absolute;  right: 5px;  top: 50%;  width: 8px;  height: 8px;  border-top: 2px solid #ccc;  border-right: 2px solid #ccc;  transform: translateY(-50%) rotate(45deg);}/* 右側コンテンツ（スクロールエリア） */.feature-main-content {  flex: 1;  display: flex;  flex-direction: column;  gap: 3em;  padding-top: 0px;}.feature-item {  background: var(--bg-light);  border-radius: 2px;  padding: 1em 0;  position: relative;  text-align: left;  align-items: flex-start;  scroll-margin-top: 100px;}.feature-head-group {  display: flex;  align-items: center;  gap: 1em;  margin-bottom: 1em;}.feature-badge {  display: inline-block;  background: var(--accent-color);  color: var(--white);  font-weight: 700;  font-size: 1em;  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);  padding: 0.5em 1.2em 0.5em 0.9em;  margin: 0;  flex-shrink: 0;  line-height: 1;}.feature-item-title {  font-size: 1.5em;  font-weight: 700;  text-align: left;  margin: 0;}.feature-visual {  margin: 0 auto 1em;  width: 90%;}.feature-img-placeholder {  width: 100%;  height: 220px;  background: var(--white);  border-radius: 12px;  display: flex;  align-items: center;  justify-content: center;  color: #94a3b8;}.feature-desc {  width: 90%;  font-size: 1em;  line-height: 1.4;  margin: 0 auto 3em;  text-align: left;}.feature-note {  font-size: 0.875em;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  .feature-layout {    flex-direction: column;    gap: 0;  }  .feature-sidebar {    display: none;  }  .feature-nav-list {  }  .feature-main-content {    gap: 2em;  }  .feature-item-title {    font-size: 1.2em;  }}/*==================================================================  7. Scene / Use Cases (#scene)===================================================================*/.use-cases {  background: var(--primary-color);  color: var(--white);}.use-cases .section-title {  color: var(--white);}.case-grid {  display: grid;  grid-template-columns: 1fr 1fr;  gap: 40px;}.case-item {  background: rgba(255, 255, 255, 0.05);  padding: 40px;  border-radius: 12px;  border: 1px solid rgba(255, 255, 255, 0.1);}.case-title {  font-size: 1.5em;  margin-bottom: 15px;  color: var(--accent-color);  border-bottom: 1px solid rgba(255, 255, 255, 0.2);  padding-bottom: 10px;  text-align: center;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  .case-grid {    grid-template-columns: 1fr; /* 1列 */    gap: 20px;  }  .case-item {    padding: 25px;  }  .case-title {    font-size: 1em;  }}/*==================================================================  6. Application / Functions (#application)===================================================================*//* --- 上部：UIプレビュー画像 --- */.functions-wrapper + .functions-wrapper {  margin-top: 3em;}.ui-preview {  width: 80%;  margin: 0 auto;  background: transparent;}.ui-preview img {  width: 100%;  border-radius: 2px;  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);}/* スマホ用 (768px以下) */@media (max-width: 768px) {.functions-wrapper + .functions-wrapper {  margin-top: 2em;}  .ui-preview {  width: 100%;}}/*==================================================================  8. FAQ (#faq)===================================================================*/.faq {  background: var(--bg-light);}.faq-item {  background: var(--white);  border-radius: 8px;  padding: 25px;  margin-bottom: 20px;  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.03);}.faq-q {  font-weight: 700;  color: var(--primary-color);  margin-bottom: 10px;  display: flex;  align-items: baseline;}.faq-q::before {  content: 'Q.';  color: var(--accent-color);  font-size: 1.3em;  margin-right: 10px;  font-weight: 900;}.faq-a {  padding-left: 35px;  color: #475569;  display: flex;  align-items: baseline;}.faq-a::before {  content: 'A.';  color: mediumvioletred;  font-size: 1.3em;  margin-right: 10px;  font-weight: 900;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  .faq-item {    padding: 20px;  }  .faq-q::before,.faq-a::before  {    font-size: 1em;    margin-right: 8px;  }  .faq-a {    padding-left: 0;     margin-top: 10px;    line-height: 1.5;  }}/*==================================================================  9. CTA Area (#contact)===================================================================*/#contact.cta-section {  padding: 0;   background-color: #000; }.cta-container {  max-width: 100%;  width: 100%;}.cta-text-inner {  width: 100%;  max-width: 480px;  text-align: left;  padding-right: 20px;  box-sizing: border-box;}.cta-box {  display: flex;  width: 100%;  min-height: 400px; }.cta-content {  flex: 1;  background-color: #000;  color: #fff;  padding: 2em 15px;  display: flex;  flex-direction: column;  justify-content: center;  align-items: flex-end;}.cta-text-inner {  width: 100%;  max-width: 480px;  box-sizing: border-box;}.cta-content h2 {  font-size: 2em;  font-weight: 700;}.cta-content p {  line-height: 1.4;  margin-bottom: 2em;}.cta-image {  flex: 1;  background-image: url('../img/businessmeeting_img.png');  background-size: cover;  background-position: center;  position: relative;  display: flex;  align-items: center;  justify-content: center;}.cta-image::before {  content: '';  position: absolute;  top: 0;  left: 0;  width: 100%;  height: 100%;  background: linear-gradient(45deg, rgba(100, 0, 255, 0.4), rgba(255, 0, 100, 0.4), rgba(0, 100, 255, 0.4));  z-index: 1;}.cta-logo {  width: 6em;  height: auto;  z-index: 2;  filter: brightness(0) invert(1);}.btn-gradient {  display: inline-block;  padding: 0.6em 2em;  font-size: 1em;  font-weight: bold;  color: var(--white);  text-align: center;  border-radius: 999px;  background: var(--btn-gradient);  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);  transition: all 0.3s ease;}.btn-gradient:hover {  opacity: 0.9;  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);  transform: translateY(-5px);}/* スマホ用 (768px以下) */@media (max-width: 768px)  {.cta-box {    flex-direction: column;  }.cta-content {  align-items: center;}.cta-text-inner {  padding: 0;  text-align: center;  max-width: 100%;}.cta-content h2 {  font-size: 1.5em;  line-height: 1.4;  text-align: left;}.cta-content p {  text-align: left;}.cta-image {  padding: 3em;}.btn-gradient {}.btn-gradient:hover {}}/*==================================================================  10. VP Series Style (Flow / Plan / Requirements / Support)===================================================================*/.vp-baseWidth {  max-width: var(--max-width);  margin-left: auto;  margin-right: auto;  padding: 0}.vp-content-block {}/* Typography */.vp-headline1 {  text-align: center;  font-size: 2em;  color: var(--primary-color);  font-weight: 700;  letter-spacing: .02em;  margin-bottom: .5em;}.vp-section-header, .vp-content-block {  text-align: center;}.vp-section-header {  margin-top: 5em;  margin-bottom: 1.5em;}/* Flow Grid */.vp-flow-grid {  display: grid;  align-items: stretch;  grid-template-columns: repeat(4, minmax(0, 1fr)); /* PCは4列 */  gap: 2em;}.vp-flow-step {  background-color: #ffffff;  padding: 2em 1.4em;  border: solid 1px #000000;  border-radius: 8px;  box-shadow: 0 1px 4px 0 rgb(0 0 0 / 0.15);  text-align: center;}.vp-step-number {  margin: 0;  color: var(--accent-color);  font-family: 'Roboto', sans-serif;  font-size: 1em;  font-weight: bold;}.vp-step-title {  margin: 0 0 .5em 0;  font-size: 1.125em;  font-weight: bold;  color: #111827;}.vp-step-description {  text-align: left;  margin-top: 0.25em;}/* Plan Grid */.vp-plan-grid {  display: grid;  grid-template-columns: repeat(2, minmax(0, 1fr)); /* PCは2列 */  gap: 3em;  margin: 3em 0 0;}.vp-plan-leftbox, .vp-plan-rightbox {  display: flex;  flex-direction: column;  background-color: #ffffff;  padding: 2em;  border-radius: 6px;  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);}.vp-plan-leftbox {  border: 1px solid var(--primary-color);}.vp-plan-rightbox {  border: 1px solid var(--primary-subcolor);}.vp-plan-leftimg, .vp-plan-rightimg {  width: 10em;  margin: 1.4em auto 0;}.vp-plan-title {  font-size: 1.5em;  font-weight: 700;  margin: 0 0 .5em 0;}.vp-plan-leftbox .vp-plan-title, .vp-plan-leftbox .vp-plan-catchphrase {  color: var(--primary-color);}.vp-plan-rightbox .vp-plan-title, .vp-plan-rightbox .vp-plan-catchphrase {  color: var(--primary-subcolor);}.vp-plan-catchphrase {  margin: 0;  font-weight: 600;  letter-spacing: 1px;}.vp-plan-description {  text-align: left;}/* --- System Requirements --- */.vp-env-box {  margin: 1.5em 0 5em;  background-color: #ffffff;  padding: 0;  border-radius: 6px;  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);}.vp-env-box table {  width: 100%;  border-collapse: collapse;  border: 1px solid #e5e7eb;}.vp-env-box th, .vp-env-box td {  padding: 1em 1.5em;  border: 1px solid #e5e7eb;  color: #4b5563;}.vp-env-box th {  text-align: right;  font-weight: 600;  color: #111827;  width: 25%;  background-color: var(--bg-light);}.vp-env-box td {  text-align: left;}.vp-env-box td div {  margin-bottom: 0.4em;}.vp-env-box td div:last-child {  margin-bottom: 0;}/* --- Support & Custom --- */.vp-support-grid {  display: grid;  grid-template-columns: repeat(3, minmax(0, 1fr)); /* PCは4列 */  margin: 1.5em 0 5em;  padding: 1.5em 0;  border-radius: 6px;  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);  counter-reset: point-counter;}.vp-support-box {  text-align: center;  padding: 0 1em;  position: relative;}.vp-support-box:not(:first-child) {  border-left: 1px solid #e5e7eb; }.vp-support-icon {  background-color: #f5f5f5;  width: 4em;  height: 4em;  border-radius: 50%;  display: flex;  justify-content: center;  align-items: center;  margin: 1.4em auto;}.vp-support-icon img {  width: 4.5em;  height: 4.5em;}.vp-support-title {  margin: 0;  font-weight: bold;  line-height: 1.4;  font-size: 1.125em;}.vp-support-title::before {  counter-increment: point-counter;  content: 'POINT 0'counter(point-counter);  display: block;  color: var(--accent-color);  font-size: 0.8em;  font-family: 'Roboto', sans-serif;  font-weight: bold;  line-height: 2em;}.vp-support-desc {  text-align: left;  color: #666;  line-height: 1.6;  font-size: .875em;}/* --- VP Series CTA --- */.vp-cta-block {  margin-top: 2em;}.vp-cta-grid {  display: grid;  grid-template-columns: repeat(2, minmax(0, 1fr));   gap: 2em;  align-items: center;}#support-and-contact .vp-cta_box {  padding: 2em 0;  font-weight: bold;  text-align: center;  letter-spacing: 1px;}#support-and-contact .vp-btn {  position: relative;  display: inline-block;  padding: 1em 2em;  border-radius: 100vw;  text-decoration: none;  font-weight: 700;  color: #ffffff;  min-width: 340px;  text-align: center;  margin-top: 2em;  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);  transition: transform 0.2s ease, box-shadow 0.2s ease;}#support-and-contact .vp-btn:hover {  transform: translateY(-3px);  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);}#support-and-contact .vp-subtitle {  transition: all 0.3s ease-in-out;}#support-and-contact .vp-btn:hover .vp-subtitle {  opacity: 0;  visibility: hidden;  transform: translateX(-50%) translateY(-10px);}#support-and-contact .vp-subtitle {  position: absolute;  top: -1.6em;  left: 50%;  transform: translateX(-50%);  background-color: #ffffff;  padding: .2em 1.4em;  border-radius: 100vw;  font-size: .8em;  font-weight: 500;  white-space: nowrap;  margin: 0;}#support-and-contact .vp-subtitle::after {  content: '';  position: absolute;  bottom: -5px;  left: 50%;  transform: translateX(-50%) rotate(45deg);  width: 10px;  height: 10px;  background-color: #ffffff;}#support-and-contact .vp-btn-design {  background: var(--btn-gradient);}#support-and-contact .vp-btn-design .vp-subtitle {  color: var(--primary-color);  border: 1px solid transparent;  background-image: linear-gradient(#fff, #fff), var(--btn-gradient);  background-origin: border-box;  background-clip: padding-box, border-box;}#support-and-contact .vp-btn-design .vp-subtitle::after {  border-bottom: 1.5px solid #2ca5a8;  border-right: 1.5px solid #2ca5a4;}#support-and-contact .vp-btn-design .vp-subtitle .highlight {  color: var(--primary-subcolor);  font-weight: 700;}#support-and-contact .vp-btn-content {  margin: 0;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  .vp-content-block {    padding: 0 15px;  }  .vp-section-header {  margin-top: 2em;}  .headicon span {    font-size: 1.25em;  }    .vp-headline2 {    font-size: 1.4em;  }  .vp-headline1 {    font-size: 1.6em;    line-height: 1.4;  }  #introduction-and-plan .vp-subtitle {    line-height: 1.6;  }  /* Flow Grid (SP) */  .vp-flow-grid {    grid-template-columns: repeat(2, minmax(0, 1fr)); /* スマホは2列 */    gap: 1em;  }  .vp-flow-step {    padding: 1em 0.9em;  }  .vp-step-number {    font-size: 1.125em;  }  .vp-step-title {    margin: 0;    line-height: 1.4;    font-size: 1em; /* 少し小さくして改行崩れ防止 */    min-height: 3.25em;    display: flex;    align-items: center;    justify-content: center;  }  .vp-step-description {  line-height: 1.4;}  /* Plan Grid (SP) */  .vp-plan-grid {    grid-template-columns: 1fr; /* スマホは1列 */    margin: 1.4em 0 0;    gap: 1em;  }  .vp-plan-leftimg, .vp-plan-rightimg {    width: 9em;    margin: 0 auto;  }  .vp-plan-leftbox, .vp-plan-rightbox {    padding: 1em 0;  }  .vp-plan-leftbox .vp-plan-title, .vp-plan-rightbox .vp-plan-title {    font-size: 1.4em;  }  .vp-plan-leftbox .vp-plan-description, .vp-plan-rightbox .vp-plan-description {    padding: 0 2em;  }  /* Env Box (SP) */  .vp-env-box th, .vp-env-box td {    padding: 0.6em 1em;  }  .vp-env-box td {    padding: 0.5em 1em;    line-height: 1.6;  }  .vp-env-box th {    width: 32%;  }  /* Support Grid (SP) */  .vp-support-grid {    display: grid;    grid-template-columns: 1fr;    gap: 0;    position: relative;    border: 1px solid #e5e7eb;     border-radius: 6px;  }  .vp-support-box {    text-align: center;    position: relative;    padding: 1.5em 1.5em;     border: none;            border-bottom: none;  }  .vp-support-box::after {    content: "";    display: block;    width: calc(100% - 3em);     height: 1px;    background-color: #e5e7eb;    position: absolute;    bottom: 0;    left: 50%;    transform: translateX(-50%);  }  .vp-support-box:last-child::after {    display: none;  }  .vp-support-box:not(:first-child),.vp-support-box:last-child {    border: none;  }  .vp-support-icon {    width: 4em;    height: 4em;    margin: 0 auto 1.5em;  }  .vp-support-title {    font-size: 1.2em;    line-height: 1.4;    margin-bottom: 1em;  }  .vp-support-desc {    text-align: left;    font-size: 0.95em;  }    /* VP CTA (SP) */  .vp-cta-grid {    grid-template-columns: 1fr; /* 1列 */    gap: 0;  }  #support-and-contact .vp-cta_box {    padding: 2em 0 0;  }  #support-and-contact .vp-btn {    min-width: auto;    width: 100%;  }}/*==================================================================  11. Legacy Sections (Info)===================================================================*//* #info */#info .baseWidth .headline2 {  position: relative;  margin-bottom: 1em;  color: #164fa4;}#info ul {  border-top: 1px solid #CCC;}#info ul:not(:last-of-type) {  margin-bottom: 2em;}#info li {  margin-bottom: 0;  border-bottom: 1px solid #CCC;}#info li a:not(.txtLink), #info li dl {  display: flex;  padding: 1em;}#info li dd {  margin-left: 0;}#info li a:hover {  color: #0076b3;}#info .date {  margin-right: 1em;  white-space: nowrap;  font-weight: bold;  color: #888;}/* スマホ用 (768px以下) */@media (max-width: 768px) {  #info li a:not(.txtLink), #info li div {    display: block;    padding: 1em 0;  }}