.page-title {
  padding-top: clamp(2.5rem, 3.75vw, 3rem);
  padding-bottom: clamp(1rem, 9.0625vw, 7.25rem);
  margin-left: clamp(1.5rem, 5vw, 4rem);
  color: #000;
}
.page-title-catnav {
  padding-bottom: clamp(2.5rem, 3.75vw, 3rem);
  position: relative;
  z-index: 1;
}
/*
****************** hero-visual start ******************
*/
.hero-visual {
  width: 100%;
  position: relative;
}
.hero-visual img {
  width: 100%;
  height: auto;
  object-fit: cover;
  vertical-align: bottom;
}
.hero-visual.hero-cover-height {
  height: auto;
  width: 100%;
  background: #000;
  box-sizing: border-box;
}
.hero-visual picture {
  display: block;
  width: 100%;
  height: 100%;
}
.hero-visual.hero-cover-height img {
  width: auto;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  margin: 0 auto;
}
.hero-btn-group {
  position: absolute;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hero-visual-inner {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
}
@media (min-width: 960px) {
  .hero-visual.hero-cover-height {
    height: 360px;
  }
}
@media (min-width: 581px) {
  .hero-btn-group {
    flex-direction: row;
    bottom: 40px;
  }
}
/*
****************** hero-visual end ******************
*/
/*
****************** anchor-menu start ******************
*/
.anchor-menu {
  padding-top: clamp(1.5rem, 2.5vw, 2rem);
  padding-bottom: 16px;
}
.anchor-menu .anchor-menu__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  list-style: none;
  padding: 0;
  margin: 0;
  row-gap: 16px;
}
.anchor-menu .anchor-menu__item {
  width: 50%;
  /* PC(画面が広い時)はコンテンツ幅に合わせる */
}
.anchor-menu .anchor-menu__item--full {
  width: 100%;
}
.anchor-menu .anchor-menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: 2em;
  margin-left: 2em;
  color: #000;
  text-decoration: none;
  letter-spacing: 0.04em;
  /* SP:14px(0.875rem) 〜 PC:16px(1rem) の可変 */
  font-size: clamp(0.875rem, 1.25vw, 1rem);
  line-height: 1.5;
  /* 右側の区切り線 */
  position: relative;
  border-right: 1px solid #666666;
  /* ホバー時の挙動 */
  transition: opacity 0.2s;
  /* アイコンフォントの指定 */
}
.anchor-menu .anchor-menu__link:hover {
  opacity: 0.7;
}
.anchor-menu .anchor-menu__link::after {
  font-family: "icon-Nissan-Global", sans-serif;
  content: "\e610";
  margin-left: 1em;
  font-size: 1em;
}
.anchor-menu .anchor-menu__item--full > .anchor-menu__link {
  justify-content: flex-start;
}
@media (min-width: 581px) {
  .anchor-menu .anchor-menu__item {
    width: auto;
  }
  .anchor-menu .anchor-menu__item--full {
    width: auto;
  }
  .anchor-menu .anchor-menu__item:last-child .anchor-menu__link {
    border-right: none;
  }
}
@media (max-width: 580px) {
  .anchor-menu .anchor-menu__item:nth-child(even) .anchor-menu__link, .anchor-menu .anchor-menu__item--full .anchor-menu__link {
    border-right: none;
  }
  .anchor-menu .anchor-menu__list:has(.anchor-menu__item--full) .anchor-menu__item--full ~ .anchor-menu__item:not(.anchor-menu__item--full):nth-child(odd) .anchor-menu__link {
    border-right: none;
  }
  .anchor-menu .anchor-menu__list:has(.anchor-menu__item--full) .anchor-menu__item--full ~ .anchor-menu__item:not(.anchor-menu__item--full):nth-child(even) .anchor-menu__link {
    border-right: 1px solid #000;
  }
}
/*
****************** anchor-menu end ******************
*/
/*
****************** feature-section start ******************
*/
.feature-section {
  padding-block-start: 64px;
  padding-block-end: 0px;
}
.feature-section:not(:has(+ .feature-section)) {
  padding-block-end: 64px;
}
.feature-title::before {
  content: "";
  display: block;
  width: 50px;
  height: 4px;
  background-color: #C3002F;
  margin-bottom: 2px;
}
.feature-layout {
  display: grid;
  gap: 16px;
  margin-top: 3rem;
}
@media (min-width: 581px) {
  .feature-layout {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-top: 2.5rem;
  }
}
.feature-section .feature-layout:nth-child(1) {
  margin-top: 0px;
}
.feature-layout.feature-layout--large .feature-image-wrapper img{
  aspect-ratio: auto;
  background-color: transparent;
}
@media (min-width: 581px) {
  .feature-layout.feature-layout--large {
    grid-template-columns: 1fr;
    /* PC時でも1カラムのままにする */
  }
}
.feature-links-wrapper {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: space-between;
  gap: 12px;
}
.feature-links-text {
  display: flex;
  flex-direction: column;
}
@media (min-width: 581px) {
  .feature-links-wrapper {
    flex-direction: column;
    gap: 0px;
  }
}
/*
****************** feature-section end ******************
*/
/*
****************** column-1-05 | layout-intro start ******************
*/
.layout-intro {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.layout-intro__action {
  flex-shrink: 0;
  min-width: fit-content;
}
.layout-intro__action .btn-outline {
  white-space: nowrap;
  margin-top: 1.5rem;
}
.layout-intro___description {
  min-width: 0;
  flex: 1;
  padding-right: 0;
}
@media (min-width: 581px) {
  .layout-intro {
    flex-direction: row;
  }
  .layout-intro__action .btn-outline {
    margin-top: 0px;
  }
  .layout-intro___description {
    padding-right: 40px;
  }
}
/*
****************** column-1-05 | layout-intro end ******************
*/
/*
****************** column-2-01 | feature-grid start ******************
*/
.feature-grid {
  display: grid;
  margin-top: clamp(2.5rem, 3.75vw, 3rem);
  gap: 32px;
}
/* ▼ グリッド内の1つのブロック（カード） */
.feature-card {
  display: flex;
  flex-direction: column;
}
.feature-card .feature-image-area:has(+ .feature-text-area) {
  margin-bottom: 24px;
}
.feature-card .feature-text-area {
  margin-top: 0;
  padding-inline: 0;
}
@media (min-width: 581px) {
  .feature-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
}
/*
****************** column-2-01 | feature-grid end ******************
*/
/* ▼ 画像エリアの装飾 */
.feature-figure {
  margin: 0;
}
.feature-image-wrapper {
  position: relative;
}
.feature-image-wrapper img {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-color: black;
  object-fit: contain;
  object-position: center;
  display: block;
}
.feature-section .feature-image-wrapper:before{
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  pointer-events: none;
  box-shadow: inset 0 0 0 2px #ffffff;
}
/* ▼ 画像エリア（モーダルトリガー用）のスタイル */
.feature-image-area.js-modal-trigger {
  cursor: pointer; /* クリックできることを明示 */
  display: block; /* buttonタグ等に変更した場合の保険 */
}
.feature-image-area.js-modal-trigger:hover .feature-image-wrapper::after {
  /* ホバー時のリアクション（任意で調整してください） */
  background-color: rgba(255, 255, 255, 1);
  transform: scale(1.05);
}
/* ▼ 右下の拡大（フルスクリーン）アイコンの自動付与 */
.feature-image-area.js-modal-trigger .feature-image-wrapper::after {
  content: "";
  position: absolute;
  bottom: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  /* SVGの読み込み */
  background-image: url("../../ASSETS/IMAGES/icon-fullscreen.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 32px;
  transition: background-color 0.2s, transform 0.2s;
  z-index: 2; /* 画像より確実に上に表示 */
}
.icon-expand {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(255, 255, 255, 0.8);
  padding: 4px;
  /* アイコンフォントに差し替える場合はここに font-family などを指定します */
}
.feature-caption {
  margin-top: 8px;
  font-size: 0.875rem; /* 14px相当 */
  color: #666;
  padding-inline: 8px;
}
.feature-text-area {
  display: flex;
  flex-direction: column;
  padding-inline: 8px;
}
@media (min-width: 581px) {
  .feature-text-area {
    padding-inline: 0;
  }
}
.feature-tag {
  align-self: flex-start;
  background-color: #F6F6F6;
  color: #666666;
  font-size: 0.6875rem;
  padding: 2px 8px;
  border-radius: 2px;
  margin-top: 8px;
}
.feature-text-h5 {
  font-size: 1.25rem;
  line-height: 1.5;
  margin-top: 0.5em;
  color: #666666;
}
.feature-description {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
}
.feature-description:nth-child(1) {
  margin-top: 0px;
}
.feature-description .btn-outline {
  margin-top: 0px;
}
.feature-text {
  font-size: 1.5rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.feature-text-small {
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
  margin-top: 0.5em;
  color: #666666;
  word-break: break-word;
  overflow-wrap: break-word;
}
.icon-info {
  flex-shrink: 0;
  font-size: 1.5rem;
  line-height: 1.5;
  cursor: pointer;
  /* アイコンフォントの指定 */
}
.icon-info::before {
  font-family: "icon-Nissan-Global", sans-serif;
  content: "\e914";
  display: block;
  font-weight: normal;
  color: #666;
}
.icon-info-inline {
  flex-shrink: 0;
  font-size: 1em;
  cursor: pointer;
  display: inline-block;
}
.icon-info-inline::before {
  font-family: "icon-Nissan-Global", sans-serif;
  content: "\e914";
  display: inline-block;
  font-weight: normal;
  color: #666;
}
/* ▼ ボタン（詳細をみる） */
.btn-outline {
  display: inline-flex;
  align-items: center;
  align-self: flex-start; /* SP時は左寄せ */
  border: 1px solid #666;
  padding: 3px 10px 3px 15px;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #000;
  background-color: #fff;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
  margin-top: 1.5rem;
  border-radius: 999px;
  cursor: pointer;
  gap: 10px;
  font-family: "ShinGoPro-Medium" !important;
}
@media (min-width: 581px) {
  .btn-outline {
    align-self: flex-end;
  }
}
.btn-outline:after {
  content: "";
  width: 16px;
  height: 16px;
  background-image: url(../IMAGES/icon-search.svg);
  background-repeat: no-repeat;
  background-size: 100%;
}
.btn-outline:hover {
  background-color: #111;
  color: #fff;
}
.btn-outline:hover:after {
  background-image: url(../IMAGES/icon-search-white.svg);
}
.btn-outline.none-icon {
  padding: 0 1em;
}
.btn-outline.none-icon::after {
  content: none;
}
.feature-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  /* PCでもスマホでも常に右寄せ */
  gap: 5px;
  /* 文字と矢印の隙間 */
  margin-top: 1.5rem;
  /* 上のテキストとの余白 */
  font-size: 0.875rem;
  /* 14px相当 */
  color: #111;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  /* テキストと同じ色で下線を引く */
  padding-bottom: 2px;
  transition: opacity 0.2s;
  /* 矢印アイコン（SVG読み込み） */
}
@media (min-width: 581px) {
  .feature-link {
    align-self: flex-end;
  }
}
.feature-link:hover {
  opacity: 0.6;
}
.feature-link::after {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  background-image: url("../../ASSETS/IMAGES/icon-link-arrow-16x16.svg");
  /* 矢印のSVGパス */
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  flex-shrink: 0;
}
/* ▼ カルーセル独自のスタイル */
.feature-carousel {
  overflow: hidden;
}
.feature-carousel .feature-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 16px;
  position: relative;
}
.feature-carousel .swiper-pagination {
  position: static;
  width: auto;
  margin-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  /* SP時は真ん中（Order 2）、PC時は左端（Order 1） */
  order: 2;
  flex-grow: 1;
}
@media (min-width: 581px) {
  .feature-carousel .swiper-pagination {
    order: 1;
    flex-grow: 0;
    margin-inline: auto;
  }
}
.feature-carousel .swiper-pagination-bullet {
  background-color: transparent !important; /* 背景を透明に */
  border: 1px solid #111 !important; /* 黒い枠線 */
  opacity: 1 !important;
  width: 6px !important;
  height: 6px !important;
  margin: 0 !important; /* gapで制御するためリセット */
  box-sizing: content-box;
  transition: background-color 0.2s;
  outline: none;
}
.feature-carousel .swiper-pagination-bullet-active {
  background-color: #111 !important; /* アクティブ時の色 */
  transform: scale(1.5);
}
.feature-carousel .feature-carousel__nav {
  display: contents;
}
@media (min-width: 581px) {
  .feature-carousel .feature-carousel__nav {
    display: flex;
    /* PC時は通常のコンテナに戻す */
    align-items: center;
    gap: 8px;
    /* PC時の矢印の隙間 */
    order: 2;
  }
}
/* ▼ 矢印ボタンの調整（黒い正円＋白矢印） */
.feature-carousel .swiper-button-prev {
  order: 1;
} /* SP時の並び順 */
.feature-carousel .swiper-button-next {
  order: 3;
} /* SP時の並び順 */
.feature-carousel .swiper-button-next, .feature-carousel .swiper-button-prev {
  position: static;
  margin: 0;
  width: 38px;
  /* 丸の横幅 */
  height: 38px;
  /* 丸の縦幅 */
  background-color: #fff;
  /* 黒背景 */
  border-radius: 50%;
  /* 正円にする */
  color: #fff;
  /* 矢印の色を白に */
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s;
  flex-shrink: 0;
  /* 潰れないように保護 */
  outline: none;
  border: 1px solid #000;
  box-sizing: content-box;
}
@media (min-width: 581px) {
  .feature-carousel .swiper-button-next, .feature-carousel .swiper-button-prev {
    order: 0;
    /* PC時は親の.feature-carousel__nav内で並ぶのでリセット */
  }
}
/* ホバーで少しだけ薄くする（操作できることの明示） */
.feature-carousel .swiper-button-next:hover, .feature-carousel .swiper-button-prev:hover {
  opacity: 0.9;
  background-color: #000;
}
.feature-carousel .swiper-button-next:hover::after, .feature-carousel .swiper-button-prev:hover::after {
  background-image: url(../../ASSETS/IMAGES/icon-next-white.svg);
}
/* Swiperデフォルトの矢印アイコンの大きさを調整 */
.feature-carousel .swiper-button-next::after, .feature-carousel .swiper-button-prev::after {
  content: "";
  width: 9.22px;
  height: 14.67px;
  font-size: 12px;
  font-weight: bold;
  color: #000;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url(../../ASSETS/IMAGES/icon-next.svg);
}
.feature-carousel .swiper-button-next::after {
  margin-left: 2px;
}
.feature-carousel .swiper-button-prev::after {
  transform: rotate(180deg);
  margin-right: 2px;
}
.feature-carousel .swiper-page-num {
  display: none;
}
.feature-carousel .has-pagenum-swiper .swiper-page-num {
  display: block;
}
.feature-carousel.is-single-slide .feature-carousel__controls {
  display: none !important;
}
.specs-section {
  padding-bottom: 80px;
}
/* ▼ タイトル */
.specs-title {
  /* 40px(2.5rem) 〜 48px(3rem) の可変 */
  font-size: clamp(2.5rem, 3.75vw, 3rem);
  margin-bottom: 40px;
  line-height: 1.3;
}
/* ▼ レイアウト（SP:縦並び, PC:横並びのフレックス） */
.specs-grid {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-block: 2rem;
  /* ▼ PC・タブレット時 */
}
@media (min-width: 581px) {
  .specs-grid {
    flex-direction: row;
    flex-wrap: wrap;
    /* 端まで行ったら折り返す */
    gap: 24px 40px;
    /* 上下24px, 左右40pxの隙間 */
  }
}
/* ▼ PDFダウンロードリンク（デザイン変更） */
.specs-button {
  /* 背景色や最大幅の制限をリセット */
  max-width: none;
  background-color: transparent;
  border-radius: 0;
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0 0 8px 0;
  border-bottom: 1px solid #111;
  color: #111;
  text-decoration: none;
  transition: opacity 0.2s;
}
@media (min-width: 581px) {
  .specs-button {
    width: auto;
    padding-bottom: 4px;
  }
}
/* ホバー時は背景色ではなく透過で反応させる */
.specs-button:hover {
  background-color: transparent;
  opacity: 0.6;
}
.specs-button .specs-button__text {
  font-size: 0.875rem;
  line-height: 1.6;
  letter-spacing: 0.04em;
  /* SP: テキストが左 (1番目) */
  order: 1;
  /* ▼ 魔法のCSS：PC版ではHTMLの <br> を無効化して1行にする */
}
@media (min-width: 581px) {
  .specs-button .specs-button__text {
    /* PC: テキストが右 (2番目) */
    order: 2;
  }
}
@media (min-width: 581px) {
  .specs-button .specs-button__text br {
    display: none;
  }
}
/* 既存の ::after を無効化（アイコン生成を ::before に統合するため） */
/*&::after {
    display: none;
  }:*/
/* PDFアイコン（::beforeで生成し、orderで位置を切り替える） */
.specs-button::before {
  font-family: "icon-Nissan-Global", sans-serif;
  content: "\e682";
  font-size: 1.25rem;
  flex-shrink: 0;
  color: #111;
  line-height: 1;
  /* SP版の配置（右側になるように2番目に指定） */
  order: 2;
  margin-left: 16px;
  /* PC版の配置（左側になるように1番目に指定） */
}
@media (min-width: 581px) {
  .specs-button::before {
    order: 1;
    margin-left: 0;
    margin-right: 8px;
  }
}
.comparison-section {
  padding-block: 64px;
}
.comparison-section-title {
  margin-bottom: 40px;
}
/* ▼ 全体のグリッドレイアウト */
.comparison-grid {
  display: grid;
  gap: 16px;
  /* SP時の隙間 */
  grid-template-columns: repeat(2, 1fr);
  /* タブレット（36.3125em 以上）: 2カラム */
  /* PC（60em 以上）: 3カラム */
}
@media (min-width: 581px) {
  .comparison-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (min-width: 60em) {
  .comparison-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}
/* ▼ カード本体のスタイリングと内部レイアウト */
.car-card {
  background-color: #fff;
  padding: 15px;
  border-radius: 4px;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
  transition: background-color 0.2s;
  border: none;
  box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.08);
  /* カード内部をGridにして並び順を制御する */
  display: grid;
  gap: 16px;
  align-items: start;
  /* 縦積みになるため start に変更 */
  /* [SP版のレイアウト]
      上から：画像 → 名前 → テキスト → リンク
  */
  grid-template-columns: 1fr;
  grid-template-areas: "image""name""text""link";
  /* [PC版のレイアウト] (36.3125em 以上で切り替え)
      上から：名前 → 画像 → テキスト → リンク
  */
  /* 各要素へのエリア割り当て */
  /* ▼ 新しく追加：おすすめ理由テキスト */
  /* リンクテキストとSVG矢印の装飾（aタグからspanになったため少し修正） */
}
.car-card:hover {
  filter: brightness(0.95);
}
@media (min-width: 581px) {
  .car-card {
    padding: 24px;
    border: 1px solid #808080;
    grid-template-areas: "name""image""text""link";
  }
}
.car-card .car-card__name {
  grid-area: name;
  font-size: 1.125rem;
  /* 18px */
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin: 0;
  font-family: "ShinGoPro-Bold" !important;
}
@media (min-width: 581px) {
  .car-card .car-card__name {
    font-size: 1.25rem;
    /* 20px */
  }
}
.car-card .car-card__image {
  grid-area: image;
  margin: 0;
  width: 100%;
  aspect-ratio: 1.89375;
}
.car-card .car-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.car-card .car-card__text {
  grid-area: text;
  font-size: 1rem;
  /* 16px相当 */
  color: #666;
  line-height: 1.6;
  margin: 0;
}
@media (min-width: 581px) {
  .car-card .car-card__text {
    font-size: 0.875rem;
    /* 14px */
  }
}
.car-card .car-card__link-area {
  grid-area: link;
  text-align: right;
}
.car-card .car-card__link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.875rem;
  /* デザインに合わせて14pxに少し小さく */
  color: #111;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  font-family: "ShinGoPro-Bold" !important;
}
.car-card .car-card__link::after {
  content: "";
  display: block;
  width: 16px;
  /* 矢印も少し小さく */
  height: 16px;
  background-image: url("../../ASSETS/IMAGES/icon-link-arrow-16x16.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.action-section {
  padding-top: 64px;
  /* ▼ セクション見出しとリード文 */
  /* ▼ グリッドレイアウト（SP:1列, PC:2列） */
  /* ▼ カード本体のスタイリング（シンプルな枠線付きボタン） */
}
.action-section .action-header {
  margin-bottom: 40px;
}
.action-section .action-title {
  margin-bottom: 16px;
  line-height: 1.3;
}
.action-section .action-lead {
  font-size: 1rem;
  /* 16px相当 */
  line-height: 1.8;
  color: #666;
}
.action-section .action-grid {
  display: grid;
  gap: 8px;
}
@media (min-width: 581px) {
  .action-section .action-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (min-width: 60em) {
  .action-section .action-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px 24px;
  }
}
.action-section .action-card {
  background-color: #FFF;
  border: 1px solid #000;
  /* デザインに合わせたグレーの枠線 */
  padding: 14px 24px;
  border-radius: 5px;
  text-decoration: none;
  color: #000;
  transition: background-color 0.2s, opacity 0.2s;
  /* テキストを上下左右の中央に配置 */
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  /* 「MyNissan」の2行ボタンに高さを合わせるため最小高さを設定 */
  /* ▼ テキストと矢印アイコンの配置 */
}
.action-section .action-card:hover {
  background-color: #F4F4F4;
  /* ホバーで少しグレーに */
}
@media (min-width: 581px) {
  .action-section .action-card {
    min-height: 72px;
  }
}
.action-section .action-card .action-card__text {
  font-size: 1rem;
  /* 16px */
  line-height: 1.5;
  letter-spacing: 0.04em;
  font-family: "ShinGoPro-Bold" !important;
  /* テキストと矢印を横並びにして中央揃え */
  display: inline-flex;
  align-items: center;
  gap: 10px;
  /* SVG矢印の生成 */
}
.action-section .action-card .action-card__text::after {
  content: "";
  display: block;
  width: 20px;
  /* 矢印の大きさ */
  height: 20px;
  /* 文字と矢印の隙間 */
  background-image: url("../../ASSETS/IMAGES/icon-link-arrow-16x16.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.action-section .action-card .action-card__text--left {
  text-align: left;
}
.cta-section {
  padding-top: 40px;
  padding-bottom: 64px;
  /* ▼ グリッドレイアウト（SP:1列, PC・タブレット:2列） */
  /* ▼ カード本体のレイアウト（aタグ化・装飾変更） */
  /* ▼ ボタンの共通スタイル（aタグからspanになったためリセット） */
  /* 赤いボタン（試乗予約） */
  /* ▼ 新しく追加：黒いボタン（セルフ見積り） */
}
.cta-section .cta-grid {
  display: grid;
  gap: 8px;
}
@media (min-width: 581px) {
  .cta-section .cta-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (min-width: 60em) {
  .cta-section .cta-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}
.cta-section .cta-card {
  background-color: #FFF;
  /* ▼ 枠線とドロップシャドウの変更 */
  border: 1px solid #808080;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.08);
  border-radius: 5px;
  padding: 15px;
  text-decoration: none;
  /* リンクの下線を消す */
  color: inherit;
  /* テキスト色を継承 */
  transition: box-shadow 0.2s, transform 0.2s;
  /* ホバーアニメーション */
  /* SP版: 要素を縦に並べる */
  display: flex;
  flex-direction: column;
  gap: 15px;
  /* PC・タブレット版: 左右に分ける */
  /* ▼ アイコンの指定 */
  /* ▼ タイトルとテキスト */
}
.cta-section .cta-card:hover {
  background-color: #F4F4F4;
}
@media (min-width: 581px) and (max-width: 959px) {
  .cta-section .cta-card {
    justify-content: space-between;
    padding: 24px 24px 20px 24px;
    gap: 30px;
  }
}
@media (min-width: 60em) {
  .cta-section .cta-card {
    flex-direction: column;
    /*align-items: flex-end;  ボタンを下揃えにする */
    justify-content: space-between;
    gap: 32px;
  }
}
.cta-section .cta-card .cta-card__content {
  display: flex;
  flex-direction: row;
  /* SP・タブレット時は横並び */
  align-items: flex-start;
  /* 上揃え */
  gap: 10px;
  /* アイコンとテキストの隙間 */
  /* PC版(60em以上)の時は縦積みに戻す */
}
@media (min-width: 60em) {
  .cta-section .cta-card .cta-card__content {
    gap: 16px;
  }
}
.cta-section .cta-card .cta-card__info {
  display: flex;
  flex-direction: column;
}
.cta-section .cta-card .cta-card__icon {
  font-size: 1.5625rem;
  line-height: 1;
  margin-bottom: 0;
  color: #111;
  flex-shrink: 0;
}
@media (min-width: 581px) {
  .cta-section .cta-card .cta-card__icon {
    margin-bottom: 16px;
    font-size: 2.5rem;
  }
}
.cta-section .cta-card .cta-card__icon--estimate::before {
  font-family: "icon-Nissan-Global", sans-serif;
  content: "\e91b";
}
.cta-section .cta-card .cta-card__icon--testdrive::before {
  font-family: "icon-Nissan-Global", sans-serif;
  content: "\e641";
}
.cta-section .cta-card .cta-card__icon--store::before {
  content: "";
  width: 25px;
  height: 25px;
  background-image: url(../../ASSETS/IMAGES/icon-store.svg);
  background-repeat: no-repeat;
  background-size: 100%;
  display: block;
}
@media (min-width: 581px) {
  .cta-section .cta-card .cta-card__icon--store::before {
    width: 40px;
    height: 37px;
  }
}
.cta-section .cta-card .cta-card__title {
  margin-bottom: 8px;
  letter-spacing: 0.04em;
}
.cta-section .cta-card .cta-card__text {
  font-size: 0.75rem;
  /* 12px */
  color: #666;
}
.cta-section .cta-card .feature-link {
  align-self: flex-end;
}
@media (max-width: 580px) {
  .cta-section .cta-card .feature-link {
    width: auto;
  }
}
@media (min-width: 581px) and (max-width: 959px) {
  .cta-section .cta-card .feature-link {
    padding: 16px 12px 14px 15px;
  }
}
.cta-section .btn-primary, .cta-section .btn-black {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 0.875rem;
  /* 14px */
  padding: 10px 24px;
  border-radius: 4px;
  /* デザインに合わせて角丸を小さく変更 */
  align-self: flex-end;
  /* ボタン右側の矢印 */
}
.cta-section .btn-primary::after, .cta-section .btn-black::after {
  content: "→";
  margin-left: 12px;
  font-weight: normal;
}
.cta-section .btn-primary {
  background-color: #C3002F;
  color: #fff;
}
.cta-section .btn-black {
  background-color: #000;
  color: #fff;
}
/* --- カテゴリナビゲーション --- */
.category-nav {
  padding-inline: clamp(1.5rem, 5vw, 4rem);
  padding-block: 16px;
  position: relative;
  border-bottom: 1px solid #808080;
}
@media (min-width: 581px) {
  .category-nav {
    padding-block: 24px;
  }
}
.category-nav .category-nav__list {
  display: flex;
  flex-wrap: nowrap;
  /* gap: 12px; */
  list-style: none;
  padding: 0;
  margin: 0;
  pointer-events: auto;
}
.category-nav .category-nav__list li {
  /*max-width: 96%;*/
  flex-shrink: 0;
}
.category-nav .category-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background-color: #414143;
  border: 2px solid #414143;
  box-shadow: 0 0 0 2px #414143;
  color: #fff;
  letter-spacing: 2px;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
  white-space: nowrap;
  flex-shrink: 0;
  position: relative;
}
.category-nav .category-nav__btn:hover {
  background-color: #000000;
  border: 2px solid #fff;
  box-shadow: 0 0 0 2px #000000;
}
.category-nav .category-nav__btn:active{
  color: #EFEFEF;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px; 
  text-decoration-color: #EFEFEF;
  background-color: #414143;
  border: 2px solid #414143;
  box-shadow: 0 0 0 2px #414143;
}
.category-nav .category-nav__btn.is-active {
  background-color: #efefef;
  color: #000;
  border-color: #efefef;
  box-shadow: 0 0 0 2px #808080;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px; 
  text-decoration-color: #666666;
}
.category-nav .category-nav__btn:not(:last-child) {
  margin-right: 12px;
}
.category-nav .category-nav__btn button {
  pointer-events: none;
  padding: 5px 11px;
  font-weight: bold;
  font-size: 0.875rem;
  line-height: 15px;
}
.category-nav .category-nav-swiper-button-next, .category-nav .category-nav-swiper-button-prev {
  width: 40px;
  height: 40px;
  border: 1px solid #000;
  border-radius: 5px;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  background: #ffffff;
  position: absolute;
}
.category-nav .category-nav-swiper-button-next:after, .category-nav .category-nav-swiper-button-prev:after {
  content: "";
  width: 10px;
  height: 16px;
  background-image: url(../../ASSETS/IMAGES/icon-next.svg);
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  display: block;
}
.category-nav .category-nav-swiper-button-prev {
  left: 16px;
}
.category-nav .category-nav-swiper-button-next {
  right: 16px;
}
.category-nav .category-nav-swiper-button-prev:after {
  transform: rotate(180deg);
}
/*tab swiper*/
.category-nav-swiper .swiper-slide {
  width: auto;
  flex-shrink: 0;
}
.category-nav-swiper .category-nav-swiper__controls {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
  z-index: 10;
  width: 100%;
}
.category-nav-swiper .category-nav-swiper__controls > div {
  pointer-events: auto;
}
.category-nav .category-nav-swiper-button-prev, .category-nav .category-nav-swiper-button-next {
  display: none;
}
.category-nav-swiper.is-ready .category-nav-swiper-button-prev:not(.is-disabled), .category-nav-swiper.is-ready .category-nav-swiper-button-next:not(.is-disabled) {
  display: flex;
}
.category-nav-swiper .category-nav-swiper-button-prev.is-disabled {
  display: none;
}
.category-nav-swiper .category-nav-swiper-button-next.is-disabled {
  display: none;
}
.js-category-content {
  display: none !important;
  &.is-active {
    display: block !important;
  }
}
/* --- モーダル全体のベース --- */
.c-modal {
  /* <dialog>のデフォルトスタイルをリセット */
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  width: 100%;
  height: 100vh;
  height: -webkit-fill-available;
  /* iOS Safari */
  height: 100dvh;
  /* 新しいブラウザ */
  max-width: 100%;
  max-height: 100vh;
  max-height: -webkit-fill-available;
  max-height: 100dvh;
  /* Flexboxを利用して中身の配置を制御する準備（JS側で display:flex が当たります） */
  flex-direction: column;
  justify-content: flex-end;
  /* SPは下端揃え */
  /* 初期状態（透明） */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  /* 背景の黒半透明（<dialog>標準機能） */
}
.c-modal::backdrop {
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: opacity 0.3s ease;
}
/* ▼ is-open クラスが付与された時の状態（フェードイン） */
.c-modal.is-open {
  opacity: 1;
  visibility: visible;
}
.c-modal.is-open::backdrop {
  opacity: 1;
}
/* PC時の配置切り替え（中央寄せ） */
@media (min-width: 581px) {
  .c-modal {
    justify-content: center;
    align-items: center;
  }
}
/* --- モーダルの中身（白い箱）のレイアウト --- */
.c-modal__inner {
  background: #FFF;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: 90vh; /* 画面高さの90%を最大値にする */
  padding-top: 60px;
  /* SP版：下端に固定してスライドインさせる（ボトムシート風） */
  border-radius: 16px 16px 0 0;
  transform: translateY(100%); /* 初期状態は画面外（下）に隠す */
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); /* なめらかなスライド */
  padding-bottom: env(safe-area-inset-bottom, 0px);
  max-height: calc(90vh - env(safe-area-inset-bottom, 0px));
  max-height: calc(90dvh - env(safe-area-inset-bottom, 0px));
}
/* PC版：画面中央でサイズを固定 */
@media (min-width: 581px) {
  .c-modal__inner {
    border-radius: 8px;
    max-width: 600px; /* PCでの最大幅 */
    transform: translateY(20px); /* PCは下からフワッと浮かぶ程度 */
  }
}
/* 大サイズ（large）指定時の最大幅 */
@media (min-width: 581px) {
  .c-modal.c-modal--large .c-modal__inner {
    max-width: 1140px;
  }
}
.c-modal.c-modal--middle .c-modal__inner {
  max-width: 640px;
}
.c-modal.c-modal--small .c-modal__inner {
  max-width: 400px;
}
/* is-open になった時のスライドアニメーション完了位置 */
.c-modal.is-open .c-modal__inner {
  transform: translateY(0);
}
/* --- 閉じるボタン (X) --- */
.c-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 10;
  /* コンテンツより上に */
  background: none;
  border: none;
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: none;
  /* バツ印をCSSで描画 */
}
.c-modal__close::before, .c-modal__close::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 2px;
  background-color: #111;
}
.c-modal__close::before {
  transform: rotate(45deg);
}
.c-modal__close::after {
  transform: rotate(-45deg);
}
/* --- 動的生成されるコンテンツのスタイル --- */
.c-modal__content {
  overflow-y: auto;
  /* コンテンツが長い場合はスクロール可能にする */
  overflow-x: hidden;
  padding: 0px 24px 32px;
  /* 閉じるボタンと被らないように上部余白を大きめに */
  scrollbar-width: thin;
  scrollbar-color: #666 #f1f1f1;
  -ms-overflow-style: auto;
}
@media (min-width: 581px) {
  .c-modal__content {
    padding: 0px 40px 40px;
  }
}
.c-modal__content::-webkit-scrollbar {
  width: 4px;
}
.c-modal__content::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 2px;
}
.c-modal__content::-webkit-scrollbar-thumb {
  background-color: #666;
  border-radius: 2px;
  border: 1px solid #f1f1f1;
}
.c-modal__content::-webkit-scrollbar-thumb:hover {
  background-color: #333;
}
.c-modal__title {
  font-size: clamp(1.25rem, 1.875vw, 1.5rem);
  /* 20px-24px */
  margin-bottom: 16px;
  line-height: 1.4;
}
.c-modal__text {
  font-size: 0.875rem;
  /* 14px */
  line-height: 1.6;
  color: #111;
  margin-bottom: 24px;
}
.c-modal__text a {
  word-break: break-word;
}
/* リンクボタン（カプセル型＋矢印） */
.c-modal__link-btn {
  display: inline-flex;
  align-items: center;
  padding: 6px 24px;
  border-radius: 999px;
  border: 1px solid #111;
  color: #111;
  font-size: 0.875rem;
  text-decoration: none;
  margin-bottom: 32px;
  transition: background-color 0.2s, color 0.2s;
  /* 右側の矢印（既存のSVGアイコンを流用） */
  gap: 5px;
}
.c-modal__link-btn:hover {
  background-color: #f4f4f4;
}
.c-modal__link-btn::after {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  background-image: url("../../ASSETS/IMAGES/icon-link-arrow-16x16.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.c-modal__figure {
  margin: 0;
}
.c-modal__figure img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  display: block;
}
.c-modal__caption {
  margin-top: 8px;
  font-size: 0.75rem;
  color: #666;
  line-height: 1.6;
}
.page-notes {
  margin-top: 32px;
  padding: 0;
  list-style: none;
}
.page-notes li {
  font-size: 0.75rem;
  /* 12px */
  color: #666;
  line-height: 1.8;
  letter-spacing: 0.04em;
  padding-left: 1em;
  text-indent: -1em;
}
.customize-grid {
  display: grid;
  gap: 16px;
  margin-top: 40px;
  /* タブレット・PC時（2カラム） */
}
@media (min-width: 581px) {
  .customize-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
/* ▼ カスタマイズバナー本体 */
.customize-banner {
  display: block;
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  color: #FFF;
}
.customize-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 1;
  transition: background-color 0.3s ease;
}
/* ホバー時のオーバーレイ解除 */
.customize-banner:hover::before {
  background-color: rgba(0, 0, 0, 0);
}
.customize-banner__image {
  margin: 0;
  aspect-ratio: 1.77777778;
}
.customize-banner__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.customize-banner:hover .customize-banner__image img {
  transform: scale(1.03);
  /* ホバー時の微拡大 */
}
/* ▼ テキストコンテンツの配置 */
.customize-banner__content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 16px;
  z-index: 2;
  /* オーバーレイより上に表示 */
  display: flex;
  flex-direction: column;
}
@media (min-width: 581px) {
  .customize-banner__content {
    padding: 24px;
  }
}
.customize-banner__title {
  font-size: clamp(1.25rem, 1.875vw, 1.5rem);
  /* 20-24px */
  margin-bottom: 8px;
  line-height: 1.2;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
  letter-spacing: 0.04em;
}
.customize-banner__bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
}
.customize-banner__text {
  font-size: 0.75rem;
  line-height: 1.5;
  margin: 0;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
/* ▼ 矢印（＞）のCSS描画 */
.customize-banner__arrow {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-top: 1px solid #FFF;
  border-right: 1px solid #FFF;
  transform: rotate(45deg);
  margin-bottom: 4px;
}