/*
	HTML5 Reset :: style.css
	----------------------------------------------------------
	We have learned much from/been inspired by/taken code where offered from:

	Eric Meyer					:: http://ericmeyer.com
	HTML5 Doctor				:: http://html5doctor.com
	and the HTML5 Boilerplate	:: http://html5boilerplate.com

-------------------------------------------------------------------------------*/
/* Let's default this puppy out
-------------------------------------------------------------------------------*/
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

article, aside, figure, footer, header, hgroup, nav, section {
  display: block;
}

/* Responsive images and other embedded objects
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
If this default setting for images is causing issues, you might want to replace it with a .responsive class instead. */
img,
object,
embed {
  max-width: 100%;
}

/* force a vertical scrollbar to prevent a jumpy page */
html {
  overflow-y: scroll;
}

/* we use a lot of ULs that aren't bulleted. 
	don't forget to restore the bullets within content. */
ul {
  list-style: none;
}

::marker {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help;
}

/* tables still need cellspacing="0" in the markup */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

th {
  font-weight: bold;
  vertical-align: bottom;
}

td {
  font-weight: normal;
  vertical-align: top;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

pre {
  white-space: pre; /* CSS2 */
  white-space: pre-wrap; /* CSS 2.1 */
  white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
  word-wrap: break-word; /* IE */
}

input[type=radio] {
  vertical-align: text-bottom;
}

input[type=checkbox] {
  vertical-align: baseline;
}

.ie6 input {
  vertical-align: text-bottom;
}

select, input, textarea {
  font: 99% sans-serif;
}

table {
  font-size: inherit;
  font: 100%;
}

/* Accessible focus treatment
	people.opera.com/patrickl/experiments/keyboard/test */
a:hover, a:active {
  outline: none;
}

small {
  font-size: 85%;
}

strong, th {
  font-weight: bold;
}

td, td img {
  vertical-align: top;
}

/* Make sure sup and sub don't screw with your line-heights
	gist.github.com/413930 */
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* standardize any monospaced elements */
pre, code, kbd, samp {
  font-family: monospace, sans-serif;
}

/* hand cursor on clickable elements */
.clickable,
label,
input[type=button],
input[type=submit],
button {
  cursor: pointer;
}

/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea {
  margin: 0;
}

/* make buttons play nice in IE */
button {
  width: auto;
  overflow: visible;
}

/* scale images in IE7 more attractively */
.ie7 img {
  -ms-interpolation-mode: bicubic;
}

/* prevent BG image flicker upon hover */
.ie6 html {
  -webkit-filter: expression(document.execCommand("BackgroundImageCache", false, true));
          filter: expression(document.execCommand("BackgroundImageCache", false, true));
}

/* let's clear some floats */
.clearfix:before, .clearfix:after {
  content: " ";
  display: block;
  height: 0;
  overflow: hidden;
}

.clearfix:after {
  clear: both;
}

.clearfix {
  zoom: 1;
}

/* Ok, this is where the fun starts.
-------------------------------------------------------------------------------*/
/* new Linux- and Windows-friendly sans-serif font stack: http://mky.be/fontstack */
body {
  font: 13px Helmet, Freesans, sans-serif;
}

/* using local fonts? make sure to read up on Paul Irish's 
	Bulletproof @font-face syntax: http://mky.be/font-face/bulletproof/ */
/* we like off-black for text */
body, select, input, textarea {
  color: #333333;
}

a {
  color: #333333;
}

/* Custom text-selection colors (remove any text shadows: twitter.com/miketaylr/status/12228805301) */
::-moz-selection {
  background: #fcd700;
  color: #fff;
  text-shadow: none;
}

::selection {
  background: #fcd700;
  color: #fff;
  text-shadow: none;
}

/*	j.mp/webkit-tap-highlight-color */
a:link {
  -webkit-tap-highlight-color: #fcd700;
}

ins {
  background-color: #fcd700;
  color: #000;
  text-decoration: none;
}

mark {
  background-color: #fcd700;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

/* HTML5 Reset end
-------------------------------------------------------------------------------*/
/*
Standard Classes
Author:Takuro Hishikawa
*/
strong {
  font-weight: bold;
}

.nomargin {
  margin: 0 !important;
}

.noborder {
  border: 0 !important;
}

.alignleft {
  text-align: left;
}

.aligncenter {
  text-align: center;
}

.alignright {
  text-align: right;
}

.clearboth {
  clear: both;
}

.clearleft {
  clear: left;
}

.clearright {
  clear: right;
}

img.alignleft, .floatleft {
  float: left;
  margin: 0 10px 10px 0;
}

img.alignright, .floatright {
  float: right;
  margin: 0 0 10px 10px;
}

select {
  background: transparent;
}

/* =========================================
font
========================================= */
/* =========================================
break point
========================================= */
/* =========================================
mixin
========================================= */
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body .sp {
  display: none;
}
@media screen and (max-width: 768px) {
  body {
    font-size: 1.4rem;
    line-height: 1.8;
  }
  body .sp {
    display: block;
  }
}

div {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

a {
  text-decoration: none;
  cursor: pointer;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
a:hover {
  text-decoration: none;
  opacity: 0.7;
}

img {
  height: auto;
}
@media screen and (max-width: 1240px) {
  img {
    max-width: 100%;
  }
}

/* =========================================
header（POP用）
========================================= */
.l-header {
  width: 100%;
}

.l-header__top {
  width: 100%;
  max-width: 1280px;
  height: 80px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.l-header__logo {
  display: inline-block;
  width: 110px;
  height: auto;
}

.l-header__logo > h1 > img,
.l-header__logo > img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

.l-header-shop {
  margin-right: 10px;
  margin-left: auto;
}

.l-header-shop > a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 150px;
  height: 48px;
  border-radius: 5px;
  text-decoration: none;
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  background-color: #c4002f;
}

.l-header-shop__icon {
  width: 14px;
  height: 14px;
  margin-right: 0.5em;
  fill: white;
}

.l-header-shop.-large > a {
  width: 200px;
  font-size: 1.5rem;
}

.l-header-shop.-large > a > .l-header-shop__icon {
  width: 18px;
  height: 18px;
}

.l-header-sp-button {
  display: none;
}

.l-header-sp-button__shop > a {
  display: block;
  width: 50px;
  height: 48px;
  padding-top: 8px;
  letter-spacing: 0;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 500;
  color: #fff;
  border-radius: 4px;
}

.l-header-sp-button__shop > a {
  box-sizing: border-box;
  background-color: #c4002f;
}

.l-header-sp-button__icon-shop {
  width: 18px;
  height: 18px;
  fill: white;
}

.l-header-sp-button__shop > a > span {
  display: block;
}


@media screen and (max-width: 1280px) {
  .l-header__top {
    padding-left: 20px;
    padding-right: 20px;
  }
}

  @media screen and (max-width: 768px) {
  .l-header {
    /* position: fixed;
    left: 0;
    top: 0;
    z-index: 1000; */
    background-color: #fff;
    /* box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); */
  }
  .l-header__top {
    height: 60px;
    padding-left: 5px;
    padding-right: 5px;
  }
  .l-header__logo {
    width: 80px;
  }
  .l-header-shop {
    display: none;
  }
  .l-header-sp-button {
    display: flex;
    align-items: center;
    column-gap: 5px;
  }
}


/* =========================================
header（LP用）
========================================= */
.lp-header {
  position: absolute;
  z-index: 9999;
  width: 100%;
  display: block;
  height: 120px;
}
.lp-header .wrapper {
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 1240px) {
  .lp-header {
    height: 75px;
  }
  .lp-header::after {
    width: 0;
    height: 0;
  }
}

.nissan-icon {
  display: block;
  width: 72px;
  height: 60px;
  margin-top: 30px;
  margin-left: 30px;
}
.nissan-icon img {
  padding-left: 20px;
}
@media screen and (max-width: 768px) {
  .nissan-icon img {
    padding-left: 0px;
  }
}
@media screen and (max-width: 1240px) {
  .nissan-icon {
    width: 50px;
  }
}
@media screen and (max-width: 768px) {
  .nissan-icon {
    width: 50px;
    margin-top: 18px;
    margin-left: 16px;
  }
}

/* =========================================
main
========================================= */
.fv {
  position: relative;
  background: url(img/bg_mainvisual.webp);
  background-size: cover !important;
  background-position: center center!important;
  background-repeat: no-repeat !important;
  position: relative;
  overflow: hidden;
  z-index: -90;
}
@media screen and (max-width: 768px) {
  .fv {
    background: none;
    aspect-ratio: 375/620;
  }
}

.fv-img {
  display: block;
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  z-index: 2;
  position: relative;
  max-height: 900px;
}
.fv-img img {
  width: 100%;
}

/* キャンペーンについて */

.p-about {
  background: #F7FFFF;
  background: linear-gradient(0deg, rgba(247, 255, 255, 1) 0%, rgba(212, 242, 242, 1) 100%);
  padding-block: 90px;
}
@media screen and (max-width: 1024px) {
  .p-about {
    padding-block: 40px 60px;
  }
}

.p-about__inner {
  width: 100%;
  max-width: 1024px;
  margin: 0 auto;
}
@media screen and (max-width: 1024px) {
  .p-about__inner {
    width: calc(100% - 40px);
    margin-inline: auto;
  }
}

.p-about__heading {
  position: relative;
  padding-block-start: 30px;
  text-align: center;
  font-size: 3.6rem;
}
@media screen and (max-width: 768px) {
  .p-about__heading {
    font-size: 2rem;
    padding-block-start: 20px;
  }
}

.p-about__heading::before {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  content: "";
  display: block;
  width: 50px;
  height: 6px;
  border-radius: 3px;
  background-color: #346D72;
}
@media screen and (max-width: 768px) {
  .p-about__heading::before {
    width: 40px;
    height: 4px;
    border-radius: 2px;
  }
}

.p-about__lead {
  line-height: 1.7;
  letter-spacing: 0;
  margin-block: 40px 60px;
  font-size: 2.2rem;
  font-weight: 500;
  & > b {
    color: #D52944;
  }
}
@media screen and (max-width: 768px) {
  .p-about__lead {
    font-size: 1.5rem;
    margin-block: 1em 2em;
  }
}

.p-about__cashback {
  text-align: center;
}

@media screen and (max-width: 560px) {
  .p-about__cashback img {
    width: 100%;
    max-width: 375px;
  }
}

.p-about__coat {
  padding: 50px 60px;
  margin-block-start: 40px;
  border-radius: 20px;
  background-color: white;
}
@media screen and (max-width: 768px) {
  .p-about__coat {
    padding: 30px 20px;
    margin-block-start: 10px;
    border-radius: 10px;
  }
}

.p-about__movie {
  margin-block-start: 50px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-about__movie {
    margin-block-start: 20px;
  }
}

.p-about__movie-intro {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-about__movie-intro {
    line-height: 1.5;
    font-size: 1.6rem;
  }
}

.p-about__button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 300px;
  max-width: 100%;
  height: 70px;
  margin-block: 20px;
  position: relative;
  border-radius: 5px;
  background-color: #438288;
  color: #fff;
  font-size: 2rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-about__button {
    width: 100%;
    max-width: 400px;
    height: 52px;
    font-size: 1.6rem;
  }
}

.p-about__button::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 1em;
    width: 0.4em;
    height: 0.4em;
    -webkit-transform: translateY(-50%) rotate(45deg);
    transform: translateY(-50%) rotate(45deg);
    border-right: 3px solid currentColor;
    border-top: 3px solid currentColor;
}

.p-about__notice {
  font-size: 1.6rem;
  font-weight: 400;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-about__notice {
    font-size: 1.3rem;
  }
}

/* キャンペーン概要 */

.p-about__campaign {
  margin-block: 80px 20px;
  border-top: 1px solid #cccccc;
}
@media screen and (max-width: 768px) {
  .p-about__campaign {
    margin-block: 40px 20px;
  }
}

.p-about__campaign-row {
  display: flex;
  gap: 1.5em;
  padding: 1.2em 0;
  border-bottom: solid 1px #cccccc;
  font-size: 1.8rem;
}
@media screen and (max-width: 768px) {
  .p-about__campaign-row {
    gap: 1em;
    padding: 1.2em 0;
    line-height: 1.6;
    font-size: 1.4rem;
  }
}

.p-about__campaign-row dt {
  width: 7em;
  font-weight: 500;
}

.p-about__campaign-row dd {
  flex: 1;
}

.p-about__campaign-note {
  font-size: 1.4rem;
}
@media screen and (max-width: 768px) {
  .p-about__campaign-note {
  font-size: 1.2rem;
}
}

/* CTAボタン */

.p-cta {
  text-align: center;
  margin-block-start: 100px;
}
@media screen and (max-width: 768px) {
  .p-cta {
    margin-block-start: 50px;
  }
}

.p-cta__text {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
  margin-block-end: 1em;
  line-height: 1.6;
  font-size: 2.2rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .p-cta__text {
    display: block;
    line-height: 1.5;
    font-size: 1.6rem;
  }
}

.p-cta__text::before,
.p-cta__text::after {
  content: "";
  width: 2px;
  height: 1.8em;
  background-color: black;
}
@media screen and (max-width: 768px) {
  .p-cta__text::before,
  .p-cta__text::after {
    display: none;
  }
}

.p-cta__text::before {
  transform: rotate(-30deg);
}

.p-cta__text::after {
  transform: rotate(30deg);
}

@media screen and (max-width: 768px) {
  .p-cta__text > span {
    display: inline-block;
  }
}

.p-cta__button {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 480px;
  height: 88px;
  border-radius: 48px;
  background-color:#D52944;
  color: #fff;
  letter-spacing: 0.06em;
  font-size: 2.4rem;
  font-weight: 600;
  transition: 0.5s;
}
@media screen and (max-width: 768px) {
  .p-cta__button {
    width: 100%;
    max-width: 480px;
    height: 56px;
    font-size: 1.7rem;
  }
}

.p-cta__button:hover {
  opacity: 0.8;
}

.p-cta__button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1em;
  width: 0.4em;
  height: 0.4em;
  transform: translateY(-50%) rotate(45deg);
  border-right: 3px solid currentColor;
  border-top: 3px solid currentColor;
}

/* 車種別キャッシュバック一覧 */

.p-lineup {
  padding-block: 100px;
  background-color: #D2EDED;
}
@media screen and (max-width: 768px) {
  .p-lineup {
    padding-block: 40px 60px;
  }
}

.p-lineup__inner {
  width: 1020px;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 1100px) {
  .p-lineup__inner {
    width: calc(100% - 80px);
  }
}
@media screen and (max-width: 768px) {
  .p-lineup__inner {
    width: calc(100% - 40px);
  }
}

.p-lineup__heading {
  position: relative;
  padding-block-start: 30px;
  margin-block-end: 60px;
  text-align: center;
  font-size: 3.6rem;
}
@media screen and (max-width: 768px) {
  .p-lineup__heading {
    padding-block-start: 20px;
    margin-block-end: 30px;
    font-size: 2rem;
  }
}

.p-lineup__heading::before {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  content: "";
  display: block;
  width: 50px;
  height: 6px;
  border-radius: 3px;
  background-color: #346D72;
}
@media screen and (max-width: 768px) {
  .p-lineup__heading::before {
    width: 40px;
    height: 4px;
    border-radius: 2px;
  }
}

.p-lineup__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: auto;
  gap: 60px;
}
@media screen and (max-width: 1100px) {
  .p-lineup__list {
    gap: 40px;
  }
}
@media screen and (max-width: 768px) {
  .p-lineup__list {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.p-lineup__item {
  text-align: center;
}

.p-lineup__item > img {
  max-width: 100%;
  height: auto;
}

/* マイカーリースポップとは？ */

.p-pop {
  background-color: #F7FFFF;
  padding-block: 100px 120px;
}
@media screen and (max-width: 768px) {
  .p-pop {
    padding-block: 50px 60px;
  }
}

.p-pop__inner {
  width: 100%;
  max-width:1000px;
  margin: 0 auto;
  text-align: center;
}
@media screen and (max-width: 1100px) {
  .p-pop__inner {
    width: calc(100% - 40px);
  }
}
@media screen and (max-width: 768px) {
  .p-pop__inner {
    width: calc(100% - 40px);
  }
}

.p-pop__heading {
  position: relative;
  padding-block-start: 30px;
  margin-block-end: 60px;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-pop__heading {
    padding-block-start: 20px;
    margin-block-end: 30px;
    line-height: 1.6;
    font-size: 1.8rem;
  }
}

.p-pop__heading::before {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  content: "";
  display: block;
  width: 50px;
  height: 6px;
  border-radius: 3px;
  background-color: #015aa9;
}
@media screen and (max-width: 768px) {
  .p-pop__heading::before {
    width: 40px;
    height: 4px;
    border-radius: 2px;
  }
}

@media screen and (max-width: 768px) {
  .p-pop__image img {
    width: 100%;
    max-width: 480px;
  }
}

/* =========================================
footer
========================================= */
.footer {
  position: relative;
  background-color: #222;
  color: #fff;
}

.footer__inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 1440px) {
  .footer__inner {
    width: calc(100% - 40px);
  }
}

.footer-container {
  padding-top: 64px;
  padding-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .footer-container {
    padding-top: 32px;
    padding-bottom: 16px;
  }
}

.footer__company-info img {
  max-width: 200px;
  height: auto;
  margin-bottom: 24px;
}
.footer__company-info p:first-of-type {
  padding-top: 10px;
}
.footer__company-info p {
  font-size: 1.5rem;
  letter-spacing: 0.04rem;
  line-height: 1.92;
  padding-bottom: 10px;
}
.footer__company-info a {
  font-size: 1.5rem;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .footer__company-info img {
    max-width: 100px;
    height: auto;
    margin-bottom: 0;
  }
  .footer__company-info p:first-of-type {
    padding-top: 10px;
  }
  .footer__company-info p {
    font-size: 1.2rem;
    line-height: 1.5;
    padding-bottom: 5px;
  }
  .footer__company-info a {
    font-size: 1.2rem;
    margin-bottom: 20px;
  }
}

.footer__copy-right {
  text-align: center;
  font-size: 1.4rem;
  letter-spacing: 0;
  line-height: 1.42;
}
.footer__copy-right .reproduction-prohibit {
  padding-top: 25px;
  padding-bottom: 10px;
}
@media screen and (max-width: 768px) {
  .footer__copy-right {
    font-size: 1.2rem;
  }
  .footer__copy-right .reproduction-prohibit {
    padding-top: 40px;
  }
}

/* ユーティリティ
---------------------------------------------------------*/

.u-br--sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .u-br--sp {
    display: block;
  }
}
