/*
	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 'Noto Sans', 'Noto Sans JP', 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 Serif JP", 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%;
  }
}

@media screen and (min-width: 540px) {
  .br-sp-sm {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .br-sp {
    display: none;
  }
}
/* =========================================
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: 352px;
  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;
  font-family: 'Noto Sans JP', sans-serif;
}

.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: 240px;
  }
  .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
========================================= */
.background {
  background-image: url(img/bg.webp);
  padding-bottom: 120px;
}

@media screen and (max-width: 768px) {
  .background {
    padding-bottom: 80px;

  }
}

.fv {
  width: 100%;
  overflow: hidden;
  max-height: 800px;
  /* background-color: #2C251A; */
  background: url(img/fv-bg.webp);
  /* background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  position: relative; */
  /* overflow: hidden;
  z-index: -90; */
  background-size: cover;
    background-position: right bottom;
}
@media screen and (max-width: 768px) {
  .fv {
    background: none;
    max-height: none;
    /* aspect-ratio: 375/620; */
  }
}

.fv__inner {
  aspect-ratio: 1440/800;
  max-height: 800px;
  margin: 0 auto;
}


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

}


@media screen and (max-width: 768px) {
  .fv-img {
    padding: 0;
  max-height: none;

  }
}


/* =========================================
content
========================================= */

.section-title {
  width: 549px;
  margin: 25px auto 0 auto;
  position: relative;
}

@media screen and (max-width: 768px) {
  .section-title {
    width: 308px;
    margin-top: -10px;
  }
}

.section-title::before {
  content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 166px;
    height: 41px;
    background-image: url(./img/section-title-deco-left.webp);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform: translateY(-50%) translateX(-100%);
    display: block;
}

.section-title::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0px;
  width: 166px;
  height: 41px;
  background-image: url(./img/section-title-deco-right.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transform: translateY(-50%) translateX(100%);
  display: block;
}


@media screen and (max-width: 880px) {
  .section-title::before,
  .section-title::after {
    display: none;
  }
}

.merit__wrapper {
  margin-top: 110px;
  margin-bottom: 110px;
}

@media screen and (max-width: 768px) {
  .merit__wrapper {
    margin: 40px auto;

  }
}

.merit__point-wrap {
  padding: 0 20px;
}

.merit__point {
  width: 936px;
  background-color: #F1E3C8;
  border: 3px solid #A08349;
  padding: 50px 68px;
  margin: 0 auto 40px auto;
  max-width: 100%;

}


@media screen and (max-width: 768px) {
  .merit__point {
    padding: 20px;
    margin: 0 auto 20px auto;
    width: 100%;
  }
}

.merit__point:first-of-type {
  margin-top: 80px;
}


@media screen and (max-width: 768px) {
  .merit__point:first-of-type {
    margin-top: 20px;

  }
}

.merit__point-deco {
  width: 128px;
}



@media screen and (max-width: 768px) {
  .merit__point-deco {
    width: 20%;

  }
}

@media screen and (max-width:1240px) {
  .merit__point-deco img{
    width: 70% !important;

  }
}

.merit__point h3 {
  font-size: 3.8rem;
  text-align: left;
  color: #000;
  padding-bottom: 20px;
  padding-top: 18px;
  font-weight: 600;
}

@media screen and (max-width: 768px) {
  .merit__point h3 {
    font-size: 2.0rem;
    padding-top: 10px;
    padding-bottom: 0;
  }
}

.merit__point p span {
  display: inline;
  line-height: 3.8rem;
}

@media screen and (max-width: 768px) {
  .merit__point p span {
    line-height: 0rem;

  }
}


.merit__point p {
  color: #000000;
  text-align: left;
  max-width: 800px;
  font-size: 2.0rem;

}

@media screen and (max-width: 768px) {
  .merit__point p {
    font-size: 1.6rem;
  }
}


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

.merit__point span {
  color: #841010;
  font-weight: 600;
}


.special__block {
  margin: 80px auto 0 auto;
  width: 1300px;
  max-width: 100%;
  background-image: url(img/special__wrapper-bg.webp);
}


@media screen and (max-width: 768px) {
  .special__block {
    margin: 20px 0px;
  }
}

.special__wrapper:nth-of-type(2) .special__block {
  margin-top: 80px;
}

@media screen and (max-width: 768px) {
  .special__wrapper {
    padding: 0 20px;
  }
}

.special__select {
  color: #000;
  padding:  20px;
}

@media screen and (max-width: 768px) {
  .special__select {
    padding: 0;
  }
}

.special__select-sxplain {
  padding: 40px 0;
  font-size: 2.4rem;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .special__select-sxplain {
    font-size: 1.8rem;
    padding: 20px 0;
  }
}

.information {
  color: #fff;
  text-align: center;
  font-size: 2.0rem;
  display: block;
  padding-top: 26px;
  font-weight: 700;
}

@media screen and (max-width: 768px) {
  .information {
    font-size: 1.4rem;
    margin: 0 20px;
  }
}

.information span {
  font-size: 1.6rem;
  display: block;
}

@media screen and (max-width: 768px) {
  .information span {
    margin-top: 20px;
  font-size: 1.4rem;

  }
}

.merit__title-small {
  font-size: 3.2rem;
  letter-spacing: 0.5rem;
  text-align: center;
  color: #fff;
}


@media screen and (max-width: 768px) {
  .merit__title-small {
    font-size: 2.0rem;
  }
}

/* タブ切り替え */
.tab {
  max-width: 1120px;
  margin: 0 auto;
}

.tab-list {
  display: flex;
  gap: 15px;
  margin-bottom: 60px;
  justify-content: center;

}

@media screen and (max-width: 1060px) {
  .tab-list {
  flex-wrap: wrap;

  }
}

@media screen and (max-width: 768px) {
  .tab-list {
    margin: 0 10px 20px 10px;

  }
}

.tab-list li {
  text-align: center;
}

.tab-item {
  cursor: pointer;
  font-size: 2.0rem;
  background-color: #CCBB98;
  padding: 20px 30px;
  width: calc((1120px - (15px * 4)) / 5);
  transition: background-color 0.3s ease, color 0.3s ease;
}

@media screen and (max-width: 768px) {
  .tab-item {
    width: calc((768px - (15px * 4)) / 5);
    padding: 0px;
    font-size: 1.4rem;
  }
}


.tab-item:hover {
  background-color: #DED3BC; 
  color: #6C6964; 
}

.tab-panel {
  display: none;
}

@media screen and (max-width: 768px) {
  .tab-panel {
    text-align: center;
    margin: 0 10px;
  }
}

.tab-item span {
  font-size: 1.6rem;
  display: block;
}

@media screen and (max-width: 768px) {
  .tab-item span {
    font-size: 1.2rem;
    padding-bottom: 5px;
  }
}

.tab-item.active {
  background-color: #FFFAF0;
  position: relative;
}

.tab-item.active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -19px; /* タブから少しはみ出させる */
  transform: translateX(-50%); /* 中央寄せ */
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #FFFAF0; /* 矢印の色 */
  transition: background-color 0.3s ease, color 0.3s ease;

}

@media screen and (max-width: 768px) {
  .tab-item.active::after {
    /* display: none; */
  }
}

.tab-item.active::after:hover {
  background-color: #DED3BC; 
  color: #6C6964; 
}

.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
}

.special__limit-wrap {
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .special__limit-wrap {
    padding: 0;
  }
}

.special__limit {
  width: 1120px;
  background-color: #FFFAF0;
  margin: 80px auto 0 auto;
  padding: 20px 35px;
  color: #000;
  max-width: 100%;

}
@media screen and (max-width: 768px) {
  .special__limit {
    width: auto;
    padding: 10px;
    margin: 30px 10px 0 10px;
  }
}


.special__limit-wrap {
  text-align: left;
}

@media screen and (max-width: 768px) {
  .special__limit-wrap {
    text-align: center;
  }
}

.special__limit-title {
  font-size: 2.4rem;
  display: inline-block; /* 幅が文字に合わせられる */
  text-align: left;
  border-bottom: 1px solid #A08249;
  padding-bottom: 2px; /* 線との間隔がほしければ */
  margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
  .special__limit-title {
    font-size: 1.8rem;
    text-align: center;
  }
}


.special__limit-title span {
  font-size: 1.8rem;
  display: inline; /* テキストと同じ行に出す */
}

@media screen and (max-width: 768px) {
  .special__limit-title span {
    display: block; /* テキストと同じ行に出す */

  }
}


.special__limit-car {
  display: flex;
  gap: 45px;
}

@media screen and (max-width: 768px) {
  .special__limit-car {
    /* flex-direction: column; */
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
  }
}

.special__limit-car div {
  width: 225px;
}

.special__limit-car p {
  font-size: 2.0rem;
  line-height: 2.4rem;
  text-align: center;
}

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

.special__limit-car span {
  display: block;
}

.special__limit-car-img {
  width: 1120px;
  margin: 40px auto auto auto;
  max-width: 100%;

}
@media screen and (max-width: 768px) {
  .special__limit-car-img {
    width: auto;
    margin: 40px 10px 0 10px;
    text-align: center;
  }
}

/* =========================================
cta
========================================= */
.cta {
  padding: 80px 0;
}
@media screen and (max-width: 768px) {
  .cta {
    padding: 20px 0 20px 0;

  }
}

.cta .wrapper {
  max-width: 1024px;
  width: 100%;
  margin: 0 auto;
  text-align: center;
}
@media screen and (max-width: 1240px) {
  .cta .wrapper {
    /* width: calc(100% - 40px); */
  }
}
@media screen and (max-width: 768px) {
  .cta .wrapper {
    width: calc(100% - 40px);
  }
}

.cta-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2vw;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1.6;
  margin-bottom: 32px;
}
@media screen and (max-width: 768px) {
  .cta-text {
    font-size: 2rem;
    margin-bottom: 24px;
  }
}
.cta-text::before {
  content: url(./img/cta-deco.svg);
  vertical-align: middle;
  padding-top: 1.2vh;
}
.cta-text::after {
  content: url(./img/cta-deco.svg);
  vertical-align: middle;
  padding-top: 1.2vh;
  -webkit-transform: scale(-1, 1);
          transform: scale(-1, 1);
}

.cta-btn {
  display: table;
  position: relative;
  margin-inline: auto;
  width: 540px;
  color: #fff;
  background: #841010;
  padding: 24px;
  font-size: 2.8rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.04em;
  border-radius: 8px;
  transition: 0.5s;
}
@media screen and (max-width: 768px) {
  .cta-btn {
    width: 100%;
    font-size: 1.4rem;
    box-sizing: border-box;
  }
}
.cta-btn::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;
}
.cta-btn:hover {
  opacity: 0.8;
}

.lineup {
  padding: 96px 0;
}
@media screen and (max-width: 768px) {
  .lineup {
    padding: 56px 0;
  }
}

.lineup .wrapper {
  max-width: 1024px;
  width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 1240px) {
  .lineup .wrapper {
    width: calc(100% - 40px);
  }
}

.lineup-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 64px 1fr;
  grid-template-columns: 1fr 1fr;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 64px;
}
@media screen and (max-width: 768px) {
  .lineup-list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.pop {
  background-color: #F5FBFF;
  padding: 120px 0;
}
@media screen and (max-width: 1024px) {
  .pop {
    padding: 56px 0;
  }
}

.pop .wrapper {
  max-width: 960px;
  width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 1024px) {
  .pop .wrapper {
    width: calc(100% - 40px);
  }
}

/* =========================================
footer
========================================= */

footer {
  position: relative;
  background-color: #222;
  color: #fff;
}

footer .wrapper {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  /* margin-top: 96px; */
}
@media screen and (max-width: 1440px) {
  footer .wrapper {
    width: calc(100% - 40px);
  }
}
@media screen and (max-width: 768px) {
  footer .wrapper {
    /* margin-top: 48px; */
  }
}

.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;
  }
}


/* btn add */

.footer__company-info-wrap {
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 540px) {
  .footer__company-info-wrap {
    flex-direction: column;
  }
}

@media screen and (max-width: 540px) {
  .l-header-shop {
    margin-top: 20px;
  }
}
