@charset "UTF-8";
:root {
  --color-white: #fff;
  --color-black: #252525;
  --color-gray: #f2f2f2;
  --color-blue: #2563eb;
  --color-light-blue: #e5f0ff;
  --color-orange: #fbb03b;
  --color-light-orange: #fbbc58;
}
/*------------------------------------------------------------------------------
共通設定
------------------------------------------------------------------------------*/
html,
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 62.5%;
  font-style: normal;
  line-height: 1.5;
  background-color: var(--color-white);
  scroll-behavior: smooth;
  color: var(--color-black);
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
}
@media screen and (max-width: 768px) {
  html,
  body {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    overflow-x: hidden;
    font-size: 31.25%;
  }
  body {
    min-width: inherit;
    height: 100%;
  }
}
body .sp-item {
  display: none !important;
}
@media screen and (max-width: 768px) {
  body .sp-item {
    display: block !important;
  }
}
body .pc-item {
  display: block !important;
}
@media screen and (max-width: 768px) {
  body .pc-item {
    display: none !important;
  }
}
a {
  text-decoration: underline;
}
.btn:hover {
  opacity: 0.7;
}
.btn-poyopoyo {
  animation: poyopoyo 2s ease-out infinite;
  opacity: 1;
  position: relative;
  overflow: hidden;
}
@keyframes poyopoyo {
  0%,
  40%,
  60%,
  80% {
    transform: scale(1);
  }
  50%,
  70% {
    transform: scale(0.95);
  }
}
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
  overflow-x: hidden;
  position: relative;
}
img {
  width: 100%;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
h1 {
  font-size: 2rem;
  color: var(--color-white);
}
@media screen and (max-width: 768px) {
  h1 {
    font-size: 3.6rem;
  }
}
h2 {
  font-size: 3rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 8rem;
  color: var(--color-white);
}
@media screen and (max-width: 768px) {
  h2 {
    font-size: 5.4rem;
  }
}
h3 {
  font-size: 2.6rem;
  font-weight: 700;
  color: var(--color-orange);
  text-align: left;
  padding: 0.5rem 2rem;
  margin-bottom: 2rem;
  background-color: var(--color-light-white);
  border: 2px solid var(--color-light-orange);
  border-radius: 1rem;
}
@media screen and (max-width: 768px) {
  h3 {
    font-size: 4.4rem;
    text-align: center;
  }
}
h4 {
  font-size: 2.2rem;
  font-weight: 600;
  color: var(--color-white);
  text-align: left;
  padding: 0.5rem 2rem;
  margin-bottom: 2rem;
  background-color: var(--color-light-orange);
  border-radius: 1rem;
}
@media screen and (max-width: 768px) {
  h4 {
    font-size: 3.4rem;
  }
}
.h3-wrapper {
  margin: 8rem auto;
}
@media screen and (max-width: 768px) {
  .h3-wrapper {
    width: 90%;
  }
}
.h4-wrapper {
  margin: 8rem auto;
}
@media screen and (max-width: 768px) {
  .h4-wrapper {
    width: 90%;
  }
}
.main-text {
  font-size: 1.8rem;
  text-align: center;
  margin: 0 auto 2rem;
  width: 100%;
  color: var(--color-white);
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .main-text {
    font-size: 3.2rem;
  }
}
.complain-text {
  font-size: 1.8rem;
  font-weight: 500;
  text-align: justify;
  margin-bottom: 1rem;
}
@media screen and (max-width: 768px) {
  .complain-text {
    font-size: 3.2rem;
  }
}
.complain-text2 {
  font-size: 1.8rem;
  font-weight: 500;
  text-align: justify;
  margin: 0 2em 1rem 2em;
}
@media screen and (max-width: 768px) {
  .complain-text2 {
    font-size: 3.2rem;
  }
}
.complain-list {
  font-size: 1.8rem;
  font-weight: 500;
  text-align: justify;
  line-height: 2;
  margin-left: 2em;
}
@media screen and (max-width: 768px) {
  .complain-list {
    font-size: 3.2rem;
  }
}
.btn-surv:hover {
  opacity: 0.7;
  transition-duration: 0.3s;
}
/*--------------------------------------------------------
ファーストビューエリア
--------------------------------------------------------*/
.fv-area {
  margin: 0 auto 8rem auto;
  position: relative;
  text-align: center;
}
.fv-area-btn {
  position: absolute;
  top: 56%;
  left: 25%;
  width: 50%;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .fv-area-btn {
    position: absolute;
    top: 55%;
    left: 5%;
    width: 90%;
    text-align: center;
  }
}
/*--------------------------------------------------------
CTAエリア
--------------------------------------------------------*/
.cta-area {
  margin: 0 auto 8rem auto;
  width: 100%;
  display: flex;
  flex-direction: column; /* 縦積み */
  justify-content: center; /* 上下中央 */
  align-items: center; /* 左右中央 */
  text-align: center; /* テキストも中央寄せ */
}
@media (max-width: 768px) {
  .cta-area-btn {
    width: 90%;
  }
}
/*--------------------------------------------------------
比較表
--------------------------------------------------------*/
.compare-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
@media (max-width: 768px) {
  .compare-table {
    width: 180%;
  }
}
.compare-table th,
.compare-table td {
  padding: 1rem;
  vertical-align: top;
  border-bottom: 1px solid #e5e7eb;
  word-break: break-word;
  font-size: 1.8rem;
  font-weight: 500;
}
@media (max-width: 768px) {
  .compare-table th,
  .compare-table td {
    font-size: 3rem;
    padding: 2rem;
  }
}
/* 1列目（項目名）をやや強調 */
.compare-table tbody th {
  text-align: center;
  font-weight: 700;
  width: 26%;
  background: #f8fafc;
}
/* ヘッダー（機種名と画像） */
.compare-table thead th {
  border-bottom: none;
  text-align: center;
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--color-black);
  background: transparent;
}
@media (max-width: 768px) {
  .compare-table thead th {
    font-size: 3rem;
  }
}
.model {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  height: 100%;
}
.model div {
  margin-top: 0;
}
.model img {
  height: 200px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
}
@media (max-width: 768px) {
  .model img {
    height: 90px;
    max-width: 140px;
  }
}
/* 奇数行に薄いグレー帯 */
.compare-table tbody tr:nth-child(odd) td,
.compare-table tbody tr:nth-child(odd) th {
  background: #f3f4f6;
}
/* 値セルの共通 */
.val {
  text-align: center;
}
.val-justify {
  text-align: justify;
  vertical-align: top;
}
/* スマホ：横スクロールにして表崩れを防ぐ */
.table-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 10px;
}
/*--------------------------------------------------------
フッターエリア
--------------------------------------------------------*/
.footer-area {
  text-align: center;
  font-size: 1.4rem;
  color: var(--color-black);
  padding: 2em 0;
}
@media (max-width: 768px) {
  .footer-area {
    font-size: 2.4rem;
  }
}
.footer-area a {
  text-decoration: none;
  color: var(--color-black);
}
.footer-area a:hover {
  text-decoration: underline;
}
.footer-area .menu {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1em;
}
.footer-area .menu li {
  margin: 0;
  padding: 0 1em;
}
.footer-area .copyright {
  margin: 0;
  padding: 1em 0 0 0;
}
