/* =========================================================
   VAIO ウェルネスケア LP
   Design tokens: mobile(SP)値を基準に定義し、768px以上でPC値に上書き
   ========================================================= */
:root {
  --spacing-xxs: 4px;
  --spacing-xs: 8px;
  --spacing-s: 16px;
  --spacing-m: 24px;
  --spacing-l: 32px;
  --spacing-xl: 40px;
  --spacing-exl: 56px;

  --fs-xmin: 10px;
  --fs-min: 13px;
  --fs-body: 14px;
  --fs-xs: 18px;
  --fs-cta-btn: 14px;
  --fs-s: 20px;
  --fs-m: 30px;

  --color-navy: #0b113e;
  --color-navy-2: #30355e;
  --color-gray-bg: #f3f4f8;
  --color-border-gray: #e2e5f0;
  --color-green: #0bba74;
  --color-white: #ffffff;
  --color-black: #000000;

  --content-max: 1000px;
  --gutter: var(--spacing-m);
}

@media (min-width: 768px) {
  :root {
    --spacing-exl: 80px;
    --fs-body: 16px;
    --fs-xs: 20px;
    --fs-cta-btn: 20px;
    --fs-s: 27px;
    --fs-m: 45px;
  }
}

main,
main * {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  overflow-x: hidden;
  min-width: auto;
}

main {
  font-family: "Yu Gothic", "游ゴシック", YuGothic, sans-serif;
  color: var(--color-black);
  background: var(--color-white);
  line-height: 1.6;
}

main img {
  max-width: 100%;
  display: block;
}

main p,
main h1,
main h2,
main h3,
main h4,
main h5,
main h6 {
  margin: 0;
}

main ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

main button {
  font-family: inherit;
}

.note-mark {
  font-size: 0.645em;
  vertical-align: text-top;
}

main .container {
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

@media (min-width: 768px) {
  main .container {
    max-width: min(var(--content-max), calc(100% - 2 * var(--spacing-l)));
    padding-inline: 0;
  }
}

/* ---------- セクション見出し + 区切り線 ---------- */
.section-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-xs);
  text-align: center;
  margin-bottom: var(--spacing-xl);
}

.section-heading__title {
  font-weight: 700;
  font-size: var(--fs-s);
  color: var(--color-navy);
}

.section-heading__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-s);
  width: 100%;
}

.section-heading__divider img.divider-line {
  width: 120px;
  height: 1px;
}

.section-heading__divider img.divider-vector {
  width: 24px;
  height: 24px;
}

.section-title-lg {
  text-align: center;
  font-weight: 700;
  font-size: var(--fs-m);
  color: var(--color-navy);
  padding-bottom: 60px;
}

.section-title-lg--alt {
  color: var(--color-navy-2);
}

/* ---------- ヘッダー / フッター（既存サイト画像そのまま） ---------- */
.site-header img,
.site-footer img {
  width: 100%;
}

.pc-only {
  display: none !important;
}

.sp-only {
  display: block !important;
}

@media (min-width: 768px) {
  .pc-only {
    display: block !important;
  }

  .sp-only {
    display: none !important;
  }

  br.sp-break {
    display: none !important;
  }
}

br.pc-break {
  display: none !important;
}

@media (min-width: 768px) {
  br.pc-break {
    display: initial !important;
  }
}

br.narrow-break {
  display: none !important;
}

@media (max-width: 439px) {
  br.narrow-break {
    display: initial !important;
  }
}

/* ---------- KV ヒーロー ---------- */
/* ==========================================
   KV
==========================================*/

.kv{
  position:relative;
  background:var(--color-white);
  overflow:hidden;
}

.kv-media{
  width:100%;
}
.kv-media img{
  width:100%;
  height:auto;
}

.kv-media img{
  object-fit:cover;
  object-position:center;
}
.kv-content {
  display: flex;
  flex-direction: column;
  padding: var(--spacing-xl) var(--spacing-m) var(--spacing-xl);
  background: var(--color-white);
}
.kv-content{
  position:relative;
  z-index:2;
  padding:40px 20px;
}
@media (min-width:768px){
  .kv-media{
    position:absolute;
    inset:0;
    z-index:0;
  }
  .kv-media img{
    width:100%;
    height:100%;
    object-fit: cover;
    object-position: calc(20% + 200px) top;
  }
  .kv-content {
    position: relative;
    z-index: 1;
    max-width: 840px;
    padding: var(--spacing-xl) var(--spacing-xl);
    background: linear-gradient(to right,
    #fff 0%,
    rgb(255 255 255 / 100%) 74%,
    rgb(255 255 255 / 80%) 79%,
    rgb(255 255 255 / 60%) 84%,
    rgba(255, 255, 255, 40%) 89%,
    rgba(255, 255, 255, 20%) 94%,
    rgba(255, 255, 255, 0%) 100%)
  }
}
.kv-inner{
  position:relative;
  z-index:1;
}
.kv-world{
  display:flex;
  justify-content:center;
  margin-bottom:34px;
}

.kv-world span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  /*border:2px solid var(--color-green);*/
  background: var(--color-green);
  color: var(--color-white);
  font-size:28px;
  font-weight:700;
  width:170px;
  height:58px;
}

.kv-world sup{
  font-size:11px;
  margin-left:3px;
  margin-bottom: 14px;
}

.kv-brand {
  text-align: center;
}

.kv-title{
  font-size:clamp(24px, 8vw, 32px);
  height: auto;
  color:var(--color-green);
  font-weight:700;
  line-height:1.15;
}

.kv-title sup{
  font-size:15px;
  vertical-align:top;
}
@media (min-width: 768px) {
  .kv-title {
    font-size: 60px;
  }
}

.kv-copy{
  margin:14px auto 20px;
  color:var(--color-navy);
  font-size:28px;
  font-weight:700;
}

.kv-heading__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-s);
  width: 100%;
}

.kv-heading__divider img.divider-line {
  width: 195px;
  height: 1px;
}

.kv-heading__divider img.divider-vector {
  width: 24px;
  height: 24px;
}

.kv-feature-list{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  margin-top:20px;
}

.kv-feature{
  width:135px;
  text-align:center;
}

.kv-feature img{
  width:48px;
  height:48px;
  margin: 0 auto;
}
.kv-feature p{
  margin-top:12px;
  font-size:18px;
  font-weight:700;
  color:var(--color-navy);
  line-height:1.4;
  letter-spacing: 0.05em;
}
.kv-feature sup{
  font-size:11px;
}

.kv-feature .big {
  font-size: 26px;
}

.kv-feature-line{
  width:1px;
  height:110px;
  background:#d5d5d5;
  margin:0 22px;
}

.kv-badge-row__stat {
  font-weight: 700;
  color: var(--color-navy);
  text-align: center;
  margin-bottom: 15px;
}

@media (min-width: 768px) {
  .kv-badge-row__stat {
    /*text-align: left;*/
    width: 445px;
    margin: 24px auto 12px;
  }
}

.kv-badge-row__stat p:first-child {
  font-size: 16px;
  white-space: nowrap;
}

.kv-badge-row__stat p:last-child {
  font-size: 16px;
  margin-top: 0;
}

@media (min-width: 768px) {
  .kv-badge-row__stat p:first-child {
    font-size: 18px;
  }

  .kv-badge-row__stat p:last-child {
    font-size: 18px;
  }
}

.kv-pill {
  border: 1px solid var(--color-navy);
  padding: var(--spacing-xs) var(--spacing-s);
  font-weight: 700;
  font-size: var(--fs-xs);
  color: var(--color-navy);
  width:445px;
  margin:24px auto 12px;
  text-align: center;
}

/* ==========================================
   SP
==========================================*/

@media (max-width:767px) {

  .kv {
    min-height: auto;
  }

  .kv-media {
    position: relative;
    height: auto;
  }

  .kv-media img {
    height: auto;
    object-fit: contain;
  }

  .kv-inner {
    min-height: auto;
  }

  .kv-content {
    width: auto;
    padding: 28px 20px 32px;
    background: #fff;
  }

  .kv-world {
    margin-bottom: 24px;
  }

  .kv-world span {
    width: 120px;
    height: 44px;
    font-size: 18px;
  }

  .kv-world sup {
    margin-bottom: 8px;
  }

  .kv-title {
    /*font-size:44px;*/
    white-space: nowrap;
  }

  .kv-copy {
    font-size: 18px;
  }

  .kv-divider {
    width: 290px;
  }

  .kv-heading__divider img.divider-line {
    width: 140px;
  }

  .kv-badge-row__stat{
    margin: 15px;
  }

  .kv-badge-row__stat p:first-child {
    font-size: 13px;
  }

  .kv-badge-row__stat p:last-child {
    font-size: 13px;
  }

  .kv-feature-list {
    margin-top: 10px;
  }

  .kv-feature {
    width: 120px;
  }

  .kv-feature img {
    width: 34px;
    height: 34px;
  }

  .kv-feature p {
    font-size: 13px;
    letter-spacing: 0;
  }

  .kv-feature .big {
    font-size: 16px;
  }

  .kv-feature-line {
    margin: 0 8px;
    height: 80px;
  }



  .kv-pill {
    width: 100%;
    margin-top: 24px;
    max-width: 335px;
  }
}

/* ---------- 毎日使うPCだから、変化に気づける。 ---------- */
.band-navy {
  background: var(--color-navy);
  color: var(--color-white);
  text-align: center;
  font-weight: 700;
  font-size: var(--fs-m);
  padding: var(--spacing-m) var(--spacing-m);
}

.kv-bottom-note {
  /*max-width: 1120px;*/
  margin: 0 auto;
  padding: var(--spacing-l) 0;
  /*padding: 48px 0;*/
}



@media (min-width: 768px) {
  .kv-bottom-note {
    display: flex;
    gap: 36px;
    align-items: flex-start;
  }
}
@media (min-width: 768px) and (max-width: 959px) {
  .kv-bottom-note {
    gap: 24px;
  }
}

.kv-bottom-note__device {
  flex: 0 0 42%;
}

.kv-bottom-note__title {
  margin-bottom: 16px;
  font-weight: 700;
  font-size: 18px;
}

.kv-bottom-note__device-box {
  display: flex;
  align-items: center;
  gap: 20px;
}

.kv-bottom-note__thumb {
  width: 96px;
  flex-shrink: 0;
}

.kv-bottom-note__thumb img {
  width: 100%;
  display: block;
}

.kv-bottom-note__device-text {
  font-weight: 700;
  font-size: 14px;
}

.kv-bottom-note__device-text .green {
  margin-top: 6px;
  color: var(--color-green);
}

.kv-bottom-note__device-note {
  margin-top: 18px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-navy);
}

.kv-bottom-note__legal {
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid #d9d9d9;
}

.kv-bottom-note__legal ul{
  margin-left: 1.25em;
}

.kv-bottom-note__legal ul > li
{
  font-size: 12px;
  line-height: 1.4;
  color: var(--color-navy);
  text-indent: -1.25em;
}

.kv-bottom-note__legal li + li {
  margin-top: 8px;
}

@media (min-width: 768px) {
  .kv-bottom-note__legal {
    flex: 1;
    margin-top: 0;
    padding-top: 0;
    padding-left: 36px;
    border-top: none;
    border-left: 1px solid #d9d9d9;
  }
}
@media (min-width: 768px) and (max-width: 959px) {
  .kv-bottom-note__legal {
    padding-left: 24px;
  }
}

.problem-section {
  background: var(--color-gray-bg);
  padding: var(--spacing-exl) 0 0;
}

.problem-cards {
  display: flex;
  flex-direction: column;
  gap: 23px;
  margin-bottom: var(--spacing-m);
  max-width: 260px;
  margin-inline: auto;
  filter: drop-shadow(0px 4px 3.6px rgba(11, 17, 62, 0.1));
}

@media (min-width: 958px) {
  .problem-cards {
    flex-direction: row;
    max-width: none;
    gap: var(--spacing-m);
    margin-bottom: 42px;
  }
}
@media (min-width: 768px) and (max-width: 959px) {
  .problem-cards {
    /*max-width: 100%*/
  }
}
@media (max-width: 958px) {
  .problem-cards {
    max-width: 600px
  }
}

.problem-card {
  background: var(--color-white);
  border-radius: 30px;
  display: flex;
  align-items: center;
  gap: var(--spacing-s);
  padding: var(--spacing-l);
  flex: 1;
}
@media (min-width: 768px) and (max-width: 959px) {
  .problem-card {
    padding: var(--spacing-m)!important;
  }
}
@media (max-width: 767px) {
  .problem-card {
    padding: var(--spacing-s);
  }
}

.problem-card__icon {
  background: var(--color-gray-bg);
  border-radius: 100px;
  padding: 12px;
  width: 60px;
  height: 60px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.problem-card__icon img {
  width: 36px;
  height: 36px;
}

.problem-card__text {
  font-size: var(--fs-body);
  color: var(--color-black);
}

.intro-block {
  display: flex;
  flex-direction: column;
  background: var(--color-white);
}

@media (min-width: 768px) {
  .intro-block {
    flex-direction: row;
    min-height: 389px;
    position: relative;
    overflow: hidden;
  }
}

.intro-block__media {
  width: 100%;
  position: relative;
}

.intro-block__media img {
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 768px) {
  .intro-block__media {
    position: absolute;
    top: 0;
    bottom: 0;
    left: auto;
    right: 0;
    width: 54.1667%;
    z-index: 0;
    max-height: 100%;
  }

  .intro-block__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: calc(30% + 80px) top;
  }
}

.intro-block__content {
  position: relative;
  z-index: 1;
  margin: 42px 0 0;
}

@media (min-width: 768px) {
  .intro-block__content {
    width: 100%;
    max-width: min(var(--content-max), calc(100% - 2 * var(--spacing-l)));
    margin-inline: auto;
    height: clamp(250px, 40vw, 395px);
  }
}

.intro-block__gradient {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-m);
  padding: var(--spacing-xl) var(--spacing-m);
  background: var(--color-white);
}

@media (min-width: 768px) {
  .intro-block__gradient {
    width: fit-content;
    max-height: 100%;
    height: 100%;
    flex-direction: row;
    align-items: center;
    gap: var(--spacing-m);
    padding: 0 80px 0 0;
    background: linear-gradient(to right, #fff 0%, #fff 78.846%, rgba(255, 255, 255, 0) 100%);
  }
}
/*@media (min-width: 768px) and (max-width: 959px) {*/
/*  .intro-block__gradient {*/
/*    height: 395px;*/
/*  }*/
/*}*/

.intro-block__text {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

@media (min-width: 768px) {
  .intro-block__text {
    width: 365px;
    flex-shrink: 1;
    min-width: 0;
  }
}

@media (min-width: 768px) and (max-width: 959px) {
  .intro-block__text {
    width: 280px;
    flex-shrink: 1;
    min-width: 0;
  }
}

.intro-block__title {
  font-weight: 700;
  font-size: var(--fs-xs);
  color: var(--color-navy);
}

.intro-block__body {
  font-size: var(--fs-body);
  color: var(--color-black);
}

.heart-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
  background: rgba(255, 255, 255, 0.9);
  border-left: 3px solid var(--color-green);
  border-radius: 12px;
  padding: 12px;
  height: 100%;
  /*width: 295px;*/
  backdrop-filter: blur(2px);
}

@media (min-width: 768px) {
  .heart-card {
    flex-shrink: 0;
  }
}
@media (max-width: 767px) {
  .heart-card {
    width: 290px
  }
}

.heart-card__label {
  font-size: var(--fs-min);
  font-weight: 700;
  color: var(--color-black);
}

.heart-card img {
  height: calc(100% - var(--fs-min) - 18px);
  object-fit: cover;
  border-radius: 4px;
  width: auto;
}
@media (max-width: 767px) {
  .heart-card img {
    width: 100%;
  }
}

/* ---------- CTA ---------- */
.cta-section {
  background: var(--color-white);
  padding: var(--spacing-exl) var(--gutter);
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (min-width: 768px) {
  .cta-section {
    padding: var(--spacing-exl) 0;
  }
}

.cta-card {
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  background: var(--color-white);
  border: 1px solid var(--color-green);
  padding: var(--spacing-m) var(--spacing-xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-s);
  text-align: center;
}

@media (min-width: 768px) {
  .cta-card {
    max-width: min(var(--content-max), calc(100% - 2 * var(--spacing-l)));
  }
}

.cta-card__heading {
  font-weight: 700;
  font-size: var(--fs-xs);
  color: var(--color-navy);
}

.cta-btn {
  background: var(--color-green);
  color: var(--color-white);
  border: none;
  display: flex;
  align-items: stretch;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 200ms ease;
}

.cta-btn:hover {
  background: #3cc890;
  color: var(--color-white);
  text-decoration: none;
  opacity: 1;
}

.cta-btn__label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  padding: var(--spacing-m) var(--spacing-xl);
  font-weight: 700;
  font-size: var(--fs-cta-btn);
  white-space: nowrap;
}

.cta-btn__icon {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: var(--spacing-xxs);
}

.cta-btn__icon img {
  width: 14px;
  height: 14px;
}

.cta-card__note {
  font-size: var(--fs-body);
  font-weight: 700;
  color: var(--color-black);
  white-space: nowrap;
}

.cta-card__legal {
  font-size: var(--fs-xmin);
  font-weight: 700;
  color: var(--color-black);
}

/* ---------- いつものPCで、日々の変化を確認 ---------- */
.daily-section {
  background: var(--color-gray-bg);
  padding-bottom: var(--spacing-exl);
}

.daily-banner {
  position: relative;
}

.daily-banner__base {
  width: 100%;
  height: auto;
  object-fit: cover;
}

@media (min-width: 768px) {
  .daily-banner__base {
    height: 450px;
  }
}

.daily-banner__base--overlay {
  position: absolute;
  inset: 0;
}

.daily-banner__inset {
  position: relative;
  display: block;
  width: 90%;
  max-width: 400px;
  height: auto;
  margin: 10px auto;
  border-radius: 2px;
  object-fit: cover;
}

@media (min-width: 768px) {
  .daily-banner__inset {
    position: absolute;
    top: 25px;
    right: 20px;
    width: 321.622px;
    height: 400px;
    margin: 0;
    border-radius: 5.405px;
  }
}

.daily-card {
  background: var(--color-white);
  margin-inline: var(--spacing-m);
  padding: var(--spacing-l);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-m);
}

@media (min-width: 768px) {
  .daily-card {
    margin-inline: auto;
    max-width: min(var(--content-max), calc(100% - 2 * var(--spacing-l)));
  }
}

.daily-card__body {
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--color-black);
}

.sensing-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}

.sensing-list li {
  display: flex;
  align-items: center;
  gap: var(--spacing-s);
}

.sensing-list img {
  width: 24px;
  height: 24px;
}

.sensing-list span {
  font-size: var(--fs-body);
  font-weight: 700;
  color: var(--color-black);
}

.daily-card__note {
  border: 1px solid var(--color-navy);
  padding: var(--spacing-xs) var(--spacing-s);
  text-align: center;
  font-weight: 700;
  font-size: var(--fs-body);
  color: var(--color-navy);
}

/* ---------- 主な特長 ---------- */
.features-section {
  padding: var(--spacing-exl) 0;
  text-align: center;
}

.features-list {
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xl);
  text-align: left;
}

@media (min-width: 768px) {
  .features-list {
    max-width: min(var(--content-max), calc(100% - 2 * var(--spacing-l)));
    padding-inline: 0;
  }
}

.feature-row {
  background: var(--color-gray-bg);
  padding: var(--spacing-l) var(--spacing-m);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--spacing-m);
}

@media (min-width: 768px) {
  .feature-row {
    flex-direction: row;
    padding: var(--spacing-l);
  }
}

.feature-row__badge {
  background: var(--color-navy);
  color: var(--color-white);
  border-radius: 100px;
  width: 54px;
  height: 54px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: var(--fs-xs);
}

.feature-row__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-xs);
  width: 100%;
}

.feature-row__content img {
  width: 100%;
  max-width: 449.9px;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.feature-row__text {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  text-align: left;
}

.feature-row__title {
  font-weight: 700;
  font-size: var(--fs-s);
  color: var(--color-black);
}

.feature-row__body {
  font-size: var(--fs-body);
  color: var(--color-black);
}

/* ---------- 利用方法・機能一覧 ---------- */
.usage-section {
  padding: var(--spacing-exl) 0;
}

.usage-inner {
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-exl);
}

@media (min-width: 768px) {
  .usage-inner {
    max-width: min(var(--content-max), calc(100% - 2 * var(--spacing-l)));
    padding-inline: 0;
  }
}

.steps-title {
  font-weight: 700;
  font-size: var(--fs-s);
  color: var(--color-black);
  margin-bottom: var(--spacing-s);
}

.steps-list {
  display: flex;
  flex-direction: column;
}

.step {
  display: flex;
  gap: var(--spacing-xs);
  align-items: flex-start;
  position: relative;
  padding-bottom: 50px;
}

.step:last-child {
  padding-bottom: 0;
}

.step::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 45px;
  width: 2px;
  height: calc(100% - 45px);
  background: repeating-linear-gradient(to bottom, #000 0, #000 2px, transparent 2px, transparent 4px);
}

.step:last-child::before {
  display: none;
}

.step__badge {
  background: var(--color-navy);
  color: var(--color-white);
  border-radius: 50%;
  width: 45px;
  height: 45px;
  padding: 3.835px;
  box-sizing: border-box;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.step__badge span:first-child {
  font-size: var(--fs-xmin);
  font-weight: 700;
}

.step__badge span:last-child {
  font-size: var(--fs-body);
  font-weight: 700;
  line-height: 1;
}

.step__content {
  padding-top: 0;
}

@media (min-width: 768px) {
  .step__content {
    padding-top: 8px;
  }
}

.step__label {
  font-weight: 700;
  font-size: var(--fs-xs);
  color: var(--color-black);
}

.step__note {
  font-size: var(--fs-body);
  color: var(--color-black);
  margin-top: var(--spacing-xs);
}

/* カルーセル */
.carousel {
  background: var(--color-gray-bg);
  padding: var(--spacing-l) var(--spacing-m);
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  gap: 0;
  margin-top: var(--spacing-xl);
}

@media (min-width: 768px) {
  .carousel {
    padding: var(--spacing-xl);
    height: 609px;
  }
}

.carousel-viewport {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  width: 21.115px;
  height: 21.115px;
}

.carousel-arrow--prev {
  left: var(--spacing-xxs);
}

.carousel-arrow--next {
  right: var(--spacing-xxs);
}

@media (min-width: 768px) {
  .carousel-arrow {
    width: 100px;
    height: 100px;
  }

  .carousel-arrow--prev {
    left: var(--spacing-m);
  }

  .carousel-arrow--next {
    right: var(--spacing-m);
  }
}

.carousel-arrow img {
  width: 100%;
  height: 100%;
}

.carousel-frame {
  position: relative;
  width: 100%;
  height: 250px;
  border-radius: 3.378px;
  overflow: hidden;
  touch-action: pan-y;
  user-select: none;
}

@media (min-width: 768px) {
  .carousel-frame {
    height: 296px;
  }
}

.carousel-frame__img {
  position: absolute;
  top: 0;
  left: 50%;
  width: 201.014px;
  height: 100%;
  margin-left: -100.507px;
  object-fit: cover;
  pointer-events: none;
  will-change: transform;
  transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (min-width: 768px) {
  .carousel-frame__img {
    width: 238px;
    margin-left: -119px;
  }
}

#carouselImagePeek {
  transform: translate3d(300%, 0, 0);
}

.carousel-frame__img.no-transition {
  transition: none;
}

.carousel-dots img {
  width: 65px;
  height: 24px;
}

@media (min-width: 768px) {
  .carousel-dots img {
    width: 128px;
    height: 48px;
  }
}

.carousel-caption {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  margin-top: var(--spacing-s);
  width: 100%;
  max-width: 352px;
  margin-inline: auto;
}

.carousel-caption__title {
  font-weight: 700;
  font-size: var(--fs-s);
  color: var(--color-black);
}

.carousel-caption__subtitle {
  font-weight: 700;
  font-size: var(--fs-xs);
  color: var(--color-black);
}

.carousel-caption__list {
  font-size: var(--fs-body);
  color: var(--color-black);
  text-align: left;
  min-height: calc(3 * 1.6em);
}

@media (min-width: 768px) {
  .carousel-caption__list {
    min-height: 0;
  }
}

/* 機能一覧テーブル */
.table-container {
  background: var(--color-white);
  border: 1px solid var(--color-border-gray);
  overflow: hidden;
}

.table-row {
  display: flex;
}

.table-row__label {
  background: var(--color-gray-bg);
  border: 1px solid var(--color-border-gray);
  width: 135px;
  flex-shrink: 0;
  padding: var(--spacing-s);
  display: flex;
  align-items: center;
  font-weight: 700;
  font-size: var(--fs-body);
  color: var(--color-navy);
}

@media (min-width: 768px) {
  .table-row__label {
    width: 255px;
    padding: var(--spacing-m);
  }
}

.table-row__value {
  border: 1px solid var(--color-border-gray);
  flex: 1;
  padding: var(--spacing-s);
  display: flex;
  align-items: center;
  font-size: var(--fs-body);
  color: var(--color-black);
}

@media (min-width: 768px) {
  .table-row__value {
    padding: var(--spacing-m);
  }
}

.closing-block {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-exl);
  margin-top: var(--spacing-exl);
}

.closing-block__cta {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}

.closing-block__title {
  font-weight: 700;
  font-size: var(--fs-m);
  line-height: 1.2;
  color: var(--color-navy);
  text-align: center;
  padding-bottom: 60px;
}

.closing-block__body {
  font-size: 14px;
  color: var(--color-black);
}

@media (min-width: 768px) {
  .closing-block__body {
    font-size: 16px;
  }
}

/*.closing-block__body p:last-child {*/
/*  font-weight: 700;*/
/*}*/

.device-bar {
  display: block;
  width: fit-content;
  margin-inline: auto;
  background: var(--color-navy);
  color: var(--color-white);
  text-align: center;
  text-decoration: none;
  padding: var(--spacing-m) var(--spacing-xl);
  font-weight: 700;
  font-size: var(--fs-body);
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 200ms ease;
}

.device-bar:hover {
  background: #30355e;
  color: var(--color-white);
  text-decoration: none;
  opacity: 1;
}

/* ---------- 注意事項・免責事項 ---------- */
.disclaimer {
  padding: 80px var(--spacing-m) 160px;
  text-align: center;
}

@media (min-width: 768px) {
  .disclaimer {
    padding: var(--spacing-exl) 0 160px;
  }
}

.disclaimer__title {
  font-weight: 700;
  font-size: var(--fs-xs);
  color: var(--color-navy);
  margin-bottom: var(--spacing-m);
}

.disclaimer__body {
  max-width: var(--content-max);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-m);
  text-align: left;
  font-size: var(--fs-min);
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-black);
}
.disclaimer__body ul{
  margin-left: 1.25em;
}
.disclaimer__body ul > li{
  text-indent: -1.25em;
}
.disclaimer__body ul.dot-list{
  margin-left: 1em;
}
.disclaimer__body ul.dot-list > li{
  text-indent: -1em;
}

@media (min-width: 768px) {
  .disclaimer__body {
    max-width: min(var(--content-max), calc(100% - 2 * var(--spacing-l)));
  }
}