@charset "utf-8";

:root{
  /* Base Font Size 1.0rem = 10px */
  font-size: 10px;

  /* フォントカラー */
  --font-primary: #222;
  --font-wht: #fff;
  --font-red: #f41918;
  --font-red_light: #fdd1d1;
  --font-yellow: #dedf2a;

  --bg-main: #f41918;
  --bg-a: #fff; /* 背景A */
  --bg-b: #00b439; /* 背景B */
  --bg-c: #f7f7f7; /* 背景C */
  --bg-d: #222; /* 背景D */

  --ff: "Noto Sans JP", sans-serif;
  --ff-en: "Roboto", sans-serif;
}
/* 320対応（374以下は、ルートベースフォントサイズを9pxに） */
@media screen and (max-width: 374px){
    :root{
        font-size: 8px;
    }
}
html{
  scroll-behavior: smooth;
}
body {
  position: relative;
  background: var(--bg-main);
  font-family: var(--ff);
  font-size: 1.8rem;
  line-height: 1.8;
  color: var(--font-primary);
  overflow-x: hidden;
}
img{
  width: 100%;
  height: auto;
}
p{
  position: relative;
  text-align: justify;
  font-size: 1.8rem;
}

a,
a:hover,
a:hover img {
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s;
  text-decoration: none;
}
a:hover img{opacity: 0.9;}
ul,ol{
  padding-inline-start: 0;
  list-style-position: inside;
}
.wrap_full{
  position: relative;
  width: 100%;
}
.wrapper,
.wrap1240{
  box-sizing: border-box;
  max-width: 1040px;
  width: 92.1875%;
  margin-inline: auto;
}
.wrap1240{
  max-width: 1240px;
}
.item_container,
.item_container_r{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
}
.item_container_r{
  flex-direction: row-reverse;
}
.itembox02{width: 48%;}
.itembox03{width: 30%;}
.itembox04{width: 25%;}

.pc_case{display: block;}
.sp_case{display: none;}

@media (min-width: 751px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

@media (max-width: 768px) {
  p{
    font-size: 1.6rem;
  }
  .pc_case{display: none;}
  .sp_case{display: block;}
  .itembox02,
  .itembox03,
  .itembox04{
    width: 100%;
  }
}

/* モーション */
/* ぴょんぴょん跳ねる */
.pyonpyon {
  animation: bounceUpDown 1.2s ease-in-out infinite;
  opacity: 1;
}

@keyframes bounceUpDown {
  0%, 100% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-15px); /* 上にジャンプ */
  }
  50% {
    transform: translateY(0);     /* 着地 */
  }
  70% {
    transform: translateY(-8px);  /* 少し跳ね返り */
  }
  85% {
    transform: translateY(0);     /* 再着地 */
  }
}

/* ==============================
    共通設定
=============================== */
.sec{
  padding-block: 40px;
}
.bg_grn{background: var(--bg-b);}
.color_red{color: var(--font-red);}
.color_yel{color: var(--font-yellow);}
.font_s{font-size: 1.3rem;}
.text_c{text-align: center;}
.text_r{text-align: right;}
.mb10{margin-bottom: 10px;}
.mb20{margin-bottom: 20px;}
.mb30{margin-bottom: 30px;}

@media (max-width: 768px) {

}

/* ==============================
    header
=============================== */
header{
  position: relative;
  padding: 50px 0;
}
.circle_container{
  display: flex;
  gap: 20px;
  justify-content: flex-start;
  margin-bottom: 20px;
}
.head_circle{
  position: relative;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: var(--bg-a);
  display: flex;
  align-items: center;
  justify-content: center;
}
.head_circle span {
  color: var(--font-red);
  text-align: center;
  font-size: 3.4rem;
  font-weight: 600;
  line-height: 1.2;
}
.head_circle::before{
  content: "";
  position: absolute;
  top: -30px;
  left: -40px;
  display: block;
  width: 80px;
  height: 65px;
  background: url(../images/icon_megaphone.svg) no-repeat;
  background-size: contain;
}
.head_line_point{
  display: none;
}
.shadow_img{
    filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.7));
  }
.pc_linebox{
  position: absolute;
  right: 0;
  top: 20px;
  max-width: 280px;
}
header .wrap1240{
  box-sizing: border-box;
  position: relative;
  background: var(--bg-a);
  border-radius: 30px;
  padding: 30px;
  margin-top: 30px;
}
.header_illust_left,
.header_illust_right{
  position: absolute;
  z-index: 5;
}
.header_illust_left{
  bottom: 0;
  left: 0;
  width: 180px;
  height: 180px;
}
.header_illust_right{
  bottom: 30px;
  right: 0;
  width: 180px;
  height: 100px;
}
.title_mv{
  display: flex;
  align-items: flex-start;
  justify-content: center;
  font-size: 3.6rem;
  font-weight: 600;
  color: var(--font-red);
  gap: 5px;
  line-height: 1;
  margin-bottom: 20px;
}
.title_mv .icon_left,
.title_mv .icon_right{
  width: 30px;
  height: 30px;
  object-fit: contain;
  margin-top: -5px;
}

header .item_container{
  width: 80%;
  margin: 0 auto;
}
header .itembox03{
  text-align: center;
}
.title_ribbon{
  background: url(../images/ribbon_red.svg) no-repeat center center;
  background-size: contain;
  width: 100%;
  height: 52px;
  text-align: center;
  color: var(--font-wht);
  font-size: 2.2rem;
  font-weight: 500;
  margin: 0 auto 10px;
}
.title_point{
  color: var(--font-red);
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.0;
}
.title_point .font_b{
  font-family: var(--ff-en);
  font-style: italic;
  font-size: 13.0rem;
}
.title_point .font_mfen{
  font-family: var(--ff-en);
  font-style: italic;
  font-size: 6.5rem;
}
.title_point .font_m{
  font-style: italic;
  font-size: 6.0rem;
}
.mv_ppintimg{
  display: block;
  width: 70%;
  height: auto;
  margin: 0 auto 10px;
}

@media (max-width: 768px) {
  header{padding: 30px 0;}
  header .wrap1240{
    padding: 20px 5px;
  }
  .circle_container{
    gap: 10px;
    justify-content: center;
    margin-top: 10px;
  }
  .head_circle{
    width: 100px;
    height: 100px;
  }
  .head_circle span{
    font-size: 2.4rem;
  }
  .head_circle::before{
    top: -10px;
    left: -20px;
    width: 50px;
    height: 40px;
  }
  .pc_linebox{display: none;}

  .head_line_point{
    position: absolute;
    bottom: -40px;
    right: -10px;
    display: block;
    width: 60px;
    height: 64px;
  }

  header .itembox03{
    margin-bottom: 30px;
  }
  .title_mv{
    gap: 0;
    text-align: center;
    font-size: 2.2rem;
    line-height: 1.4;
  }
  .header_illust_left{
    top: 180px;
    bottom: auto;
    width: 120px;
    height: 120px;
  }
  .header_illust_right{
    width: 120px;
    height: 60px;
  }
  .title_point .font_b{
    line-height: 0.8;
  }

}

/* #trouble */
#trouble .itembox04{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
/* タイトル内アイコン位置調整 */
.title_trouble{
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 5px;
  color: var(--font-wht);
  text-align: center;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 15px;
}
.title_trouble .icon_right_t{
  width: 36px;
  height: auto;
  object-fit: contain;
  margin-top: -15px;
}
.trouble_img{
  display: block;
  width: 90%;
  height: auto;
  margin: auto;
}

@media (max-width: 768px) {
  #trouble .item_container{
    flex-direction: column;
    text-align: left;
  }
  #trouble .itembox04{
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 16px;
    padding: 10px 0;
  }
  #trouble .trouble_img {
    order: 1;
    width: 30%;
    max-width: 100px;
    height: auto;
    flex-shrink: 0;
  }
  #trouble .title_trouble {
    order: 2;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    text-align: left;
    margin: 0;
  }
}

/* #merit ローンが通りやすい */
#merit{
  position: relative;
  padding: 40px 0 60px;
}
.merit_carleft,
.merit_carright{
  position: absolute;
  top: 100px;
  width: 320px;
  height: 260px;
}
.merit_carleft{
  left: 0;
}
.merit_carright{
  right: 0;
}
.title_merit img{
  position: relative;
  display: block;
  width: 60%;
  margin: 0 auto;
}
.title_merit02{
  margin-bottom: 30px;
}
.title_merit03,
.title_merit04{
  box-sizing: border-box;
  width: 100%;
  height: auto;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 500;
  padding: 14px 30px 20px 12px;
  margin-bottom: 15px;
}
.title_merit03{
  background: url(../images/merit_pointBox_title01.png) no-repeat top left;
  background-size: 100% auto;
}
.title_merit04{
  background: url(../images/merit_pointBox_title02.png) no-repeat top left;
  background-size: 100% auto;
}
.meritBox{
  box-sizing: border-box;
  display: block;
  width: 60%;
  border: 3px solid #fff;
  color: var(--font-wht);
  letter-spacing: 0.1em;
  text-align: center;
  font-size: 4.8rem;
  font-weight: 500;
  line-height: 1.0;
  padding: 20px;
  margin: 20px auto;
}
.meritBox span{
  color: var(--font-yellow);
  font-family: var(--ff-en);
  font-style: italic;
  font-size: 8.4rem;
  font-weight: 900;
  margin: 0 0.1em;
}
.txt_chui{
  text-align: right;
  color: var(--font-wht);
  font-size: 1.4rem;
  margin-bottom: 30px;
}
.merit_pointBox{
  position: relative;
  box-sizing: border-box;
  background: var(--bg-a);
  padding: 20px;
}
.merit_staff{
  display: block;
  width: 70%;
  height: auto;
  margin: 0 auto -20px;
}
.merit_pointBox ul{
  list-style: none;
}
.merit_pointBox li{
  position: relative;
  font-size: 1.8rem;
  line-height: 1.4;
  padding-left: 40px;
  margin-bottom: 15px;
}
.merit_pointBox li::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background: url(../images/merit_pointBox_icon.svg) no-repeat;
  background-size: contain;
  width: 30px;
  height: 30px;
}
@media (max-width: 768px) {
  #merit{padding: 40px 0;}
  .merit_pointBox{
    padding: 20px 20px 0;
  }
  .merit_pointBox .itembox03{
    margin-bottom: 30px;
  }
  .title_merit03,
  .title_merit04{
    padding: 20px 30px 30px 10px;
    margin-bottom: 10px;
  }

  .merit_carleft,
  .merit_carright{
    top: 190px;
    width: 100px;
    height: 70px;
  }
  .title_merit img{
    width: 100%;
  }
  .meritBox{
    width: 100%;
    font-size: 3.6rem;
    line-height: 1.2;
    padding: 20px 20px 10px;
    margin: 20px auto 5px;
  }
  .merit_staff{
    margin: -30px 0 -30px auto;
  }
}

/* タイトル */
.main_titleArea {
  position: relative;
  text-align: center;
  padding: 20px 0;
  margin-bottom: 40px;
}
.main_title_en,
.main_title_en_wht,
.main_title_en_red{
  font-family: var(--ff-en);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 12rem;
  font-weight: 800;
  color: rgba(244, 25, 24, 0.15);
  pointer-events: none;
  z-index: 0;
  white-space: nowrap;
}
.main_title_en_wht{
  color: rgba(255, 255, 255, 0.3);
}
.main_title_en_red{
  color: var(--font-red);
}
.subtitle,
.main_title,
.subtitle_wht,
.main_title_wht,
.subtitle_blk,
.main_title_blk{
  position: relative;
  text-align: center;
  color: var(--font-red);
  line-height: 1.2;
  text-shadow:
  -2px -2px 0 #fff,
  2px -2px 0 #fff,
  -2px  2px 0 #fff,
  2px  2px 0 #fff;
  z-index: 1;
}
.subtitle,
.subtitle_wht,
.subtitle_blk{
  font-size: 2.0rem;
  font-weight: 500;
}
.main_title,
.main_title_wht,
.main_title_blk{
  font-size: 3.6rem;
  font-weight: 700;
}
.subtitle_wht,
.main_title_wht{
  color: var(--font-wht);
  text-shadow:none;
}
.subtitle_blk,
.main_title_blk{
  color: var(--font-primary);
}

@media (max-width: 768px) {
  .main_titleArea{margin-bottom: 0;}
  .main_title_en,
  .main_title_en_wht{
    font-size: 6.0rem;
  }
  .main_title_en_red{font-size: 7.4rem;}
  .main_title,
  .main_title_wht{
    font-size: 2.8rem;
  }
  .main_title_blk{font-size: 2.6rem;}
  .subtitle,
  .subtitle_wht,
  .subtitle_blk{
    font-size: 1.8rem;
  }

}

/* #lineup */
#lineup{
  background: var(--bg-a);
  padding: 40px 0;
}
#lineup .itembox03{
  width: 33%;
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
}
.lineup_list{
  display:flex;
  flex-flow: column;
}
.lineup_listbox{width: 100%;}
.sp_cardealer{
  padding: 10px;
}

.lineup_bg{
  box-sizing: border-box;
  background: #eee;
  display: flex;
  flex-wrap: wrap;
  padding: 15px 10px;
  flex-grow: 1;
}
.lineup_bg dt,
.lineup_bg dd {
  box-sizing: border-box;
}
.lineup_bg dt {
  width: 35%;
  text-align: right;
  padding-right: 3%;
}
.lineup_bg dd {
  width: 65%;
  text-align: left;
  font-size: 1.8rem;
  line-height: 1.4;
}
.cardealer{
  box-sizing: border-box;
  display: inline-block;
  background: var(--font-primary);
  color: var(--font-wht);
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.6;
  padding: 0 5px;
}
.car_pay{
  box-sizing: border-box;
  display: inline-block;
  background: var(--bg-main);
  color: var(--font-wht);
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.6;
  padding: 0 5px;
}
.car_name{
  font-size: 2.0rem;
  font-weight: 600;
}
.car_price{
  font-family: var(--ff-en);
  font-size: 2.2rem;
  font-weight: 700;
}
.atamakin{
  box-sizing: border-box;
  display: inline-block;
  border: 1px solid var(--bg-d);
  font-size: 1.4rem;
  padding: 2px 5px;
  margin-top: 10px;
}
@media (max-width: 768px) {
  #lineup{
    background: #eee;
    padding: 10px 0 0;
  }
  #lineup .itembox03{
    width: 100%;
    background: var(--bg-a);
  }
  .lineup_list{
    flex-direction: row;
    align-items: flex-start;
  }
  .lineup_listbox:first-child{width: 40%;}
  .lineup_listbox:last-child{width: 60%;}
  .lineup_bg{background: none;}
  .lineup_bg dt,
  .lineup_bg dd{
    width: 100%;
    text-align: left;
  }
}

/* CTA */
.ctaArea{
  padding: 40px 0;
}
.pc_cta.item_container{
  align-items: center;
}
.pc_ctabox01{width: 18%;}
.pc_ctabox02{
  width: 57%;
  text-align: center;
}
.pc_ctabox03{width: 25%;}

.sp_cta{display: none;}

.title_cta{
  text-align: center;
  color: var(--font-wht);
  font-size: 3.6rem;
  font-weight: 600;
  line-height: 1.4;
}
.title_cta span{
  display: block;
  font-size: 2.4rem;
  font-weight: 500;
}

.line_ctaArea{
  position: relative;
}
.cta_line{
  box-sizing: border-box;
  display: block;
  width: 90%;
  background: var(--bg-b);
  color: var(--font-wht);
  text-align: center;
  font-size: 2.0rem;
  font-weight: 500;
  line-height: 60px;
  border-radius: 30px;
  margin: 10px auto 0;
}
.line_point{
  position: absolute;
  top: 10px;
  right: 20px;
  display: block;
  width: 60px;
  height: 65px;
}

@media (max-width: 768px) {
  .ctaArea{padding: 20px 0 30px;}
  .pc_cta{display: none;}
  .sp_cta{display: block;}
  .title_cta{
    font-size: 2.4rem;
  }
  .title_cta span{font-size: 2.0rem;}
}

/* #voice */
#voice{
  background: var(--bg-a);
  padding: 40px 0;
}
.voiceBox{
  margin-bottom: 50px;
}
.voiceBox:last-of-type{
  margin-bottom: 0;
}
.title_voice{margin-bottom: 10px;}
.title_voice span{
  box-sizing: border-box;
  display: inline-block;
  background: var(--bg-main);
  color: var(--font-wht);
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1.0;
  padding: 5px 7px 7px;
}
.voice_item:first-child{
  width: 40%;
}
.voice_item:last-child{
  width: 56%;
}
@media (max-width: 768px) {
  #voice{
    padding: 10px 0 20px;
  }
  .voiceBox{
    margin-bottom: 30px;
  }

  .voice_item:first-child,
  .voice_item:last-child{
    width: 100%;
  }
  .title_voice span{
    font-size: 2.0rem;
  }
}

/* #staff */
#staff{
  padding: 40px 0 60px;
}
#staff .itembox02{
  width: 45%;
  color: var(--font-wht);
}
.staff_img{
  display: block;
  border-radius: 50%;
  width: 70%;
  margin: 0 auto 20px;
}
#staff .itembox02 h3{
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  #staff .itembox02{width: 100%;}
  #staff .itembox02:first-child{
    margin-bottom: 30px;
  }
}

/* #usedcar */
#usedcar{
  background: #fff url(../images/usedcar_bg.png);
  padding: 30px 0;
}
.usedcar_item{
  box-sizing: border-box;
  width: 48%;
  background: var(--bg-a);
  border: 2px solid var(--bg-d);
  padding: 10px 10px 20px;
  margin-bottom: 30px;
}
.sp_usedcar_dealer{display: none;}

.pc_usedcar_dealer{
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.pc_usedcar_dealer dt,
.usedcar_itembox dt{
  width: 20%;
}
.pc_usedcar_dealer dd{
  width: 80%;
  text-align: right;
  font-size: 3.2rem;
  line-height: 1;
}
.usedcar_itembox dd{
  width: 80%;
  text-align: left;
  font-size: 1.8rem;
}
.usedcar_price{
  color: var(--font-red);
  font-family: var(--ff-en);
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.0;
  margin-right: 3px;
}
.usedcar_atamakin{
  background: var(--bg-d);
  color: var(--font-wht);
  font-size: 1.4rem;
  line-height: 1.2;
  padding: 2px 5px;
}
.usedcar_list {
  display: grid;
  grid-template-columns: 20% 80%;
  gap: 10px 0;
  margin-top: 20px;
}
.usedcar_list dt,
.usedcar_list dd {
  border-bottom: 2px dashed var(--bg-d);
}
.usedcar_list dt{
  display: inline-block;
  text-align: justify;
  font-size: 1.4rem;
  line-height: 1.0;
  padding-top: 10px;
}
.usedcar_list dt::after{
  content: '';
  display: inline-block;
  width: 100%;
}
.usedcar_list dd{
  box-sizing: border-box;
  font-size: 1.6rem;
  font-weight: 500;
  padding-left: 20px;
}
.usedcar_list dd span{
  font-family: var(--ff-en);
  font-size: 2.2rem;
  font-weight: 600;
}
.title_usedcar_line{
  position: relative;
  text-align: center;
  font-size: 3.6rem;
  font-weight: 500;
}
.title_usedcar_line span{
  display: block;
  font-size: 2.4rem;
}

/* 下向き矢印 */
.arrow_triple {
  position: relative;
  text-align: center;
  margin-top: 10px;
  z-index: 5;
}
.arrow_down,
.arrow_down_wht{
  display: block;
  width: 40px;
  height: 40px;
  transform: rotate(45deg);
  margin: -20px auto 0;
}
.arrow_down {
  border-right: 4px solid var(--bg-d);
  border-bottom: 4px solid var(--bg-d);
}
.arrow_down_wht {
  border-right: 4px solid var(--bg-a);
  border-bottom: 4px solid var(--bg-a);
}


@media (max-width: 768px) {
  .sp_usedcar_dealer{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
  }
  .pc_usedcar_dealer{display: none;}
  .sp_usedcar_dealer dt,
  .usedcar_itembox dt{
    width: 25%;
  }
  .sp_usedcar_dealer dd,
  .usedcar_itembox dd{
    width: 75%;
  }
  .sp_usedcar_dealer dd{
    text-align: right;
    font-size: 3.2rem;
    line-height: 1;
  }
  .usedcar_item{width: 100%;}

  .title_usedcar_line{
    font-size: 3.0rem;
  }
  .title_usedcar_line span{
    font-size: 2.0rem;
  }
}

/* footer */
footer{
  position: relative;
  padding: 20px 0;
}
footer .fot_carleft,
footer .fot_carright {
  position: absolute;
  top: 60px;
  width: 300px;
  height: 240px;
}
footer .fot_carleft{left: 0;}
footer .fot_carright{right: 0;}

.title_fot{
  text-align: center;
  color: var(--font-wht);
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1.4;
  margin-bottom: 20px;
}
.title_fot span{
  position: relative;
  display: block;
  font-size: 2.4rem;
}
.title_fot span::after{
  content: "";
  display: inline-block;
  background: url(../images/icon_kirakira03.svg) no-repeat;
  background-size: contain;
  vertical-align: middle;
  width: 30px;
  height: 30px;
  margin-top: -20px;
}
footer ul{
  list-style: none;
  padding-left: 6%;
}
footer li{
  color: var(--font-wht);
  font-size: 2.0rem;
  line-height: 1.8;
}
footer li::before{
  content: "";
  display: inline-block;
  background: url(../images/fot_icon.png) no-repeat;
  background-size: contain;
  vertical-align: middle;
  width: 25px;
  height: 25px;
  margin-right: 10px;
}

.fot_btnArea{
  display: block;
  max-width: 420px;
  width: 100%;
  margin: 0 auto;
}
.fot_day{
  text-align: center;
  font-size: 1.3rem;
  line-height: 1.4;
  margin-top: 10px;
}

@media (max-width: 768px) {
  footer{
    background: var(--bg-main);
    padding: 50px 0 20px;
    margin-top: -60px;
  }
  footer .fot_carleft,
  footer .fot_carright{
    top: -50px;
    width: 110px;
    height: 80px;
  }
}