html { font-size: 16px; }

#bodyColor {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0px;
  background: #fff;
}

#bodyColor .header h1 {
}

#bodyColor .grade-swiper {
  position: relative;
  margin-top: 3.6rem;
  display: block;
  padding-bottom: 0;
}

#bodyColor .grade-track-wrap {
  width: calc(100% - 64px);
  overflow-x: auto;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  touch-action: pan-x;
  margin: 0 auto;
  border-bottom: 1px solid #808080;
}

#bodyColor .grade-track-wrap::-webkit-scrollbar { display: none; }

#bodyColor .grade-track { display: flex; gap: 0; min-width: 100%; }

#bodyColor .grade-card {
  display: flex;
  justify-content: space-between;
  border-bottom:2px solid transparent;
  padding:1.75rem 2rem 1rem 1.5rem;
  cursor: pointer;
}
#bodyColor .grade-card.is-active,
#bodyColor .grade-card.swiper-slide-active { border-bottom-color: #000; }
#bodyColor .grade-card .name {font-size: 1.25rem; line-height: 1; white-space: nowrap; align-self: end; font-family:Nissan-Global!important;font-weight:bold;}

#bodyColor .grade-card .price {margin-top: 10px; font-size: 1.125rem; line-height: 1; white-space: nowrap; align-self: start; font-family:Nissan-Global!important;font-weight:400;}
#bodyColor .grade-card .price span { font-size: 0.75rem; font-weight: 500;color: #666;padding-left: 0.3125rem; vertical-align: 1px;}
/* #bodyColor .grade-card img { grid-area: img; width:100%; height: auto; } */
#bodyColor .grade-card img {width:7.5rem; height: auto; }

#bodyColor .grade-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 1.5rem;
  height: 100%;
  border: none;
  background: #414143;
  cursor: pointer;
  z-index: 10;
  margin: 0;
  transition: background-color 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              border-color 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  border: 2px solid #414143;
  box-shadow: inset 0 0 0 2px #414143; 
}
#bodyColor .grade-nav::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  border-radius: 2px; 
  transform-origin: center center;
  transition: all 0.3s;
}
#bodyColor .grade-nav:hover{
  background: #000000;
  border: 2px solid #000000;
  box-shadow: inset 0 0 0 2px #ffffff; 
}
#bodyColor .grade-nav:hover::before{
  border-top: 3px solid #ccc;
  border-right: 3px solid #ccc;
}
#bodyColor .grade-nav.next::before { transform: translate(-65%, -50%) rotate(45deg) scale(0.8); }
#bodyColor .grade-nav.prev::before { transform: translate(-35%, -50%) rotate(-135deg) scale(0.8); }
#bodyColor .grade-nav.prev { left: 0; }
#bodyColor .grade-nav.next { right: 0; }
#bodyColor .grade-nav.is-disabled {pointer-events: none; opacity: 0.8;}



#bodyColor .grade-summary {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  pointer-events: none;
  width: 100%;
}
#bodyColor .grade-summary .grade-name { font-size: 3.75rem; line-height: 1; font-weight: 700; letter-spacing: 0.04em; font-family: Nissan-Global !important; font-weight: bold;}
#bodyColor .grade-summary .grade-price { margin-top: 1.9rem; font-size: 1.75rem; font-weight: 400; line-height: 1; display: flex; align-items: baseline; gap: 0.5rem; letter-spacing: 0.04em; }
#bodyColor .grade-summary .grade-price span { font-size: 0.75rem; line-height: 1.7; letter-spacing: 0.08em; }
#bodyColor .grade-summary .grade-desc { margin-top: 1.2rem; font-size: 0.875rem; line-height: 1.5; letter-spacing: 0.04em; max-width: 100%; }
#bodyColor .grade-summary .grade-price .grade-price-num,
#bodyColor .grade-summary .grade-price .grade-price-mode{
  font-size: 1.75rem;
  line-height: 1;
  font-family: Nissan-Global !important; font-weight: bold;
}
#bodyColor .main-wrap { position: relative; }
#bodyColor .main { position: relative; cursor: ew-resize; display: flex;
        justify-content: center;padding-top: 3.75rem; touch-action: none;}
#bodyColor .main > .wrap { position: relative; padding-top: 0;width: 77.82%;padding-top: 46.64%; }
#bodyColor .main .item {
  position: absolute;
  inset: 0;
  display: block;
  opacity: 0;
  visibility: hidden;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  backface-visibility: hidden;
  transform: translateZ(0);
  will-change: opacity;
          left: 6.5%;
}
#bodyColor .main.image001 .item01 { opacity: 1; visibility: visible; }
#bodyColor .main.image002 .item02 { opacity: 1; visibility: visible; }
#bodyColor .main.image003 .item03 { opacity: 1; visibility: visible; }
#bodyColor .main.image004 .item04 { opacity: 1; visibility: visible; }
#bodyColor .main.image005 .item05 { opacity: 1; visibility: visible; }
#bodyColor .main.image006 .item06 { opacity: 1; visibility: visible; }
#bodyColor .main.image007 .item07 { opacity: 1; visibility: visible; }
#bodyColor .main.image008 .item08 { opacity: 1; visibility: visible; }
#bodyColor .main.image009 .item09 { opacity: 1; visibility: visible; }
#bodyColor .main.image010 .item10 { opacity: 1; visibility: visible; }
#bodyColor .main.image011 .item11 { opacity: 1; visibility: visible; }
#bodyColor .main.image012 .item12 { opacity: 1; visibility: visible; }
#bodyColor .main.image013 .item13 { opacity: 1; visibility: visible; }

#bodyColor .rotate-hotspot {
  position: absolute;
  top: 16%;
  width: 14%;
  height: 64%;
  z-index: 4;
}
#bodyColor .rotate-hotspot.left { left: 0; }
#bodyColor .rotate-hotspot.right { right: 0; }

#bodyColor .rotate-btn {
  position: absolute;
  top: 50.5%;
  width: 4rem;
  padding: 0;
  height: 6.375rem;
  transform: translateY(-50%);
  border: none;
  background: transparent center center / contain no-repeat;
  opacity: 1;
  pointer-events: auto;
  cursor: pointer;
  transition: transform 0.18s ease, opacity 0.2s ease;
  z-index: 5;
}
#bodyColor .rotate-btn::before { content: none; }
#bodyColor .rotate-btn::after { content: none; }
#bodyColor .rotate-btn.left { left: 1.75rem; background-image: url('../IMAGES/Union-left.png');}
#bodyColor .rotate-btn.right { right: 1.75rem; background-image: url('../IMAGES/Union-right.png'); }
#bodyColor .main-wrap.show-rotate-ui .rotate-btn { opacity: 1; pointer-events: auto; }
#bodyColor .rotate-btn:hover { transform: translateY(-50%) scale(1.03); }
#bodyColor .rotate-btn.is-pressing { transform: translateY(-50%) scale(0.95); }
#bodyColor .rotate-btn.is-disabled { opacity: 0.35 !important; pointer-events: none; }
#bodyColor .icon-spinner{
  position: absolute;
  bottom: -55px;
  width: 77.82%;
  left:auto;
  right:auto;
  text-align: center;
}
#bodyColor .icon-spinner img{
  margin-left: 0%;
}

#bodyColor .slider { width: 77.82%; margin: 0.625rem auto 0; padding: 0; }
#bodyColor .slider > .wrap {
  position: relative;
  height: 0.625rem;
  border-radius: 62.4375rem;
  background: #d8d8d8;
  overflow: hidden;
  display: none;
}
#bodyColor .slider .progress-bar {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #5b5f65 0%, #1f2126 100%);
  transition: width 0.12s linear;
}
#bodyColor .slider .point { position: absolute; top: 0; }
#bodyColor .slider .point.point0 { left: 0; }
#bodyColor .slider .point.point1 { left: calc(100% / 12 * 1); }
#bodyColor .slider .point.point2 { left: calc(100% / 12 * 2); }
#bodyColor .slider .point.point3 { left: calc(100% / 12 * 3); }
#bodyColor .slider .point.point4 { left: calc(100% / 12 * 4); }
#bodyColor .slider .point.point5 { left: calc(100% / 12 * 5); }
#bodyColor .slider .point.point6 { left: calc(100% / 12 * 6); }
#bodyColor .slider .point.point7 { left: calc(100% / 12 * 7); }
#bodyColor .slider .point.point8 { left: calc(100% / 12 * 8); }
#bodyColor .slider .point.point9 { left: calc(100% / 12 * 9); }
#bodyColor .slider .point.point10 { left: calc(100% / 12 * 10); }
#bodyColor .slider .point.point11 { left: calc(100% / 12 * 11); }
#bodyColor .slider .point.point12 { left: calc(100% / 12 * 12); }
#bodyColor .slider .point span {
  display: block;
  width: 1rem;
  height: 1rem;
  margin-top: -0.1875rem;
  margin-left: -0.5rem;
  border-radius: 50%;
  border: 0.125rem solid #fff;
  background: #101115;
  box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.25);
}
#bodyColor .sub-outer{
   width: 100%;
    position: relative;
    overflow: hidden;
    margin-top: 3.4375rem;
}
 

#bodyColor .sub {
  position: relative;
  bottom: 0;
  right: 0;
  width: 15.25rem;
  z-index: 10;
  float: right;
  padding-top: 10px;
}


#bodyColor .colors .navi { width: 100%; }
#bodyColor .colors .navi .item {
  width: 1.75rem;
  height: 1.75rem;
  margin: 0 0.5rem 0.625rem 0;
  float: left;
  position: relative;
  box-sizing: border-box;
}
#bodyColor .colors .navi .item .wrap { position: absolute; inset: 0; }
#bodyColor .colors .navi .item span {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 0.0625rem solid rgba(0, 0, 0, 0.25);
}
#bodyColor .sub .navi .item span.half { overflow: hidden; }
#bodyColor .sub .navi .item span.half:after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
  -webkit-clip-path: polygon(0 100%, 100% 0, 100% 100%);
}

#bodyColor .colors .navi .item.focus { padding: 0; }
#bodyColor .colors .navi .item.focus::after {
  content: '';
  position: absolute;
  top: -0.3rem;
  right: -0.3rem;
  bottom: -0.3rem;
  left: -0.3rem;
  border: 3px solid #000;
  border-radius: 50%;
  pointer-events: none;
}
#bodyColor .colors .navi .item.focus .wrap { inset: 0; }

#bodyColor .colors .label-container {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: flex-start;
  margin-top: 0.5rem;
  min-height: 0.75rem;
}

#bodyColor .colors .label {
  grid-area: 1 / 1;
  border-top: none;
  padding-top: 0;
  margin: 0;
}
#bodyColor .colors .label dt,
#bodyColor .colors .label dd {
  display: inline;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #000;
}

#bodyColor .links-bottom {
  margin-top: 1.6rem;
  display: flex;
  justify-content: center;
  gap: 0.6875rem;
}
#bodyColor .content {
  margin-top: clamp(2.5rem, 2.6875vw, 3.75rem);
  position: relative;
  display: block;
}
 @media screen and (min-width: 960px) and (max-width: 1279px) {

  
  /* #bodyColor { padding: 1.65rem 1.925rem 2.2rem; }
  #bodyColor .header h1 { font-size: 2rem; line-height: 1.08; }
  #bodyColor .grade-card { flex: 0 0 calc(100% / 3); box-sizing: border-box; grid-template-columns: 1fr; padding-right: 0; }
  #bodyColor .grade-card .name { font-size: 1.5469rem; }
  #bodyColor .grade-card[data-grade-id="M1"] .name { font-size: 1.8563rem; }
  #bodyColor .grade-card .price { font-size: 1.4781rem; margin-top: 0.3438rem; }
  #bodyColor .grade-card .price span { font-size: 0.6531rem; }
  #bodyColor .content { margin-top: 1.3062rem; }

  #bodyColor .grade-summary .grade-price {  margin-top: 0.55rem; }
  #bodyColor .grade-summary .grade-price span { font-size: 1.1rem; }
  #bodyColor .grade-summary .grade-desc { font-size: 1.0312rem; margin-top: 1.7188rem; max-width: 15.8125rem; }
  #bodyColor .main > .wrap { padding-top: 51%; }
  #bodyColor .rotate-btn { width: 4.125rem; height: 4.125rem; top: 50%; }
  #bodyColor .rotate-btn.left { left: -0.9625rem; }
  #bodyColor .rotate-btn.right { right: -0.9625rem; }
  #bodyColor .slider { margin-top: 0.55rem; }
  #bodyColor .sub { width: 18.9062rem; }
  #bodyColor .colors .navi .item { width: 1.2375rem; height: 1.2375rem; margin: 0 0.3438rem 0.3781rem 0; }
  #bodyColor .colors .label-container { margin-top: 0.8594rem; min-height: 0.9625rem; }
  #bodyColor .colors .label { margin: 0; padding-top: 0; }
  #bodyColor .colors .label dt,
  #bodyColor .colors .label dd { font-size: 0.6445rem; }
  #bodyColor .links-bottom { margin-top: 2.5781rem; gap: 0.5912rem; }
  #bodyColor .links-bottom .btn { padding: 1.1687rem 1.375rem 1.1687rem 1.8219rem; font-size: 0.9625rem; border-radius: 0.2062rem; gap: 0.4125rem; height: auto; min-width: auto; }
  #bodyColor .links-bottom .btn .css-icon-arrow { width: 0.7563rem; height: 0.1031rem; border: none; transform: none; margin-left: 0.4125rem; }
  #bodyColor .links-bottom .btn .css-icon-arrow::after { width: 0.3438rem; height: 0.1031rem; }
  #bodyColor .links-bottom .btn.black::before, #bodyColor .links-bottom .btn.red::before { top: 0.1031rem; left: 0.1031rem; right: 0.1031rem; bottom: 0.1031rem; border-radius: 0.1031rem; } */
} 
