@charset "UTF-8";

/*====================
common
====================*/
img {
  display: block;
  margin: 0 auto;
}
#GFoot {
  padding: 10px 0 0;
}
#GFoot ul.caution{
  width: 100%;
  max-width: 600px;
  margin: 0 auto 50px;
  padding: 0 16px;
  line-height: 1.4;
  box-sizing: border-box;
  font-size: 11px;
}
#GFoot ul li{
  position: relative;
}
#contents section{
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}
@media all and (min-width: 601px){
  #GFoot {
    padding: 30px 0 0;
  }
  .notes{
    font-size: 14px;
    line-height: 1.4;
  }
  #section_second ul{
    width: 88%;
    display: block;
    margin: 17px auto 31px;
  }
  #section_second ul li{
    margin-bottom: 0px;
  }
}
@media only screen and (max-width: 600px){
  #GFoot .copyBlock {
      margin-top: 70px;
      /* padding-bottom: 120px; */
      font-size: 10px;
      font-size: 1rem;
  }
}
  @media only screen and (min-width: 601px), print {
  #GFoot .copyBlock {
      margin-top: 50px;
      /* padding-bottom: 220px; */
      font-size: 12px;
      font-size: 1.2rem;
  }
}

/*====================
scroll_header
====================*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background-color: #000;
}
.header img {
  width: 65%;
  height: auto;
  display: block;
  margin: 13px auto 12px;
  max-width: 470px;
}
.max_content {
  position: relative;
  width: 100%;
  max-width: 660px;
  margin: 56px auto 0;
}

@media all and (min-width: 660px){
  .max_content {
    margin: 86px auto 0;
}
}

/*====================
add
====================*/
.bottom_txt {
  background-color: #fff;
}
.bottom_txt img {
  width: 100%;
  max-width: 660px;
  margin: 0 auto;
}
.btn_re {
  position: relative;
}
.btn_ab {
  position: absolute;
  margin: 0 auto;
  top: 0;
  right: 0;
  left: 0;
}
.btn01{
  width: 71%;
  max-width: 535px;
  display: grid;
  row-gap: 8%;
}
.btn01 label {
  transition: .3s;
  font-size: 360%;
  font-weight: 400;
}
.btn01 label:hover {
  opacity: .7;
}
/*------ popup modal ------*/
body.open {
  height: 100vh;
  overflow-y: hidden;
}
.overlay {
  position: fixed;
  width: 100%;
  height: 100%;
  background: #000000;
  opacity: .6;
  z-index: 999;
  top: 0;
  left: 0;
  right: 0;
  visibility: hidden;
}

.overlay.open {
  visibility: visible;
}

.modal {
  max-width: 660px;
  width: 80%;
  height: 86%;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 9998;
  overflow-y: scroll;
  display: none;
}

.modal img{
  width: 100%;
  margin-top: 60px;
}

.modal::-webkit-scrollbar {
  display: none;
}

.modal.open {
  display: block;
  overflow-x: hidden;
}

.clause-icon_wrapper {
  position: relative;
}

.clause-icon {
  position: absolute;
  width: 36px;
  height: 36px;
  top: 0;
  right: 0;
  border: solid 4px #fff;
  border-radius: 30px;
  cursor:pointer;
}

.clause-icon::after,
.clause-icon::before {
  content: "";
	position: absolute;
	top: 12px;
	width: 24px;
	height: 24px;
  border-top: solid 4px #ffffff;
}

.clause-icon::after {
  left: -2.5px;
  -webkit-transform: rotate(45deg);
	transform: rotate(45deg);

}

.clause-icon::before{
  right: -2.5px;
  -webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}


/*====================
CLOSE
====================*/

.after_close {
  position: fixed;
  width: 100%;
  height: 100vh;
  background: #00000082;
  z-index: 99999;
}

.after_close img {
  width: 80%;
  max-width: 720px;
  height: auto;
  display: block;
  margin: auto;
  position: absolute;
  top: 40%;
  left: 0;
  right: 0;
}

/*====================
nikunohi2026 FV SLIDER
====================*/
.fv {
  position: relative;
  overflow: hidden;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  isolation: isolate;
}

.slider,
.slider02{
  transform: translate3d(0,0,0);
  -webkit-transform: translate3d(0,0,0);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  contain: paint;
}

.slider img,
.slider02 img{
  width: 100vw;
  max-width:none;
  height: auto;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  outline: 1px solid transparent;
}

/* 上段（共通） */
.slider {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  animation: slider var(--t-top, 20s) linear infinite;
  will-change: transform;
}

.slider img {
  width: var(--w-top);
  height: var(--h-top);
  margin-right: var(--gap-top);
  flex-shrink: 0;
  display: block;
}

/* 下段（共通） */
.slider02 {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  animation: slider02 var(--t-bottom, 20s) linear infinite;
  will-change: transform;
}

.slider02 img {
  width: var(--w-bottom);
  height: var(--h-bottom);
  margin-right: var(--gap-bottom);
  flex-shrink: 0;
  display: block;
}

/* ここが肝：移動距離は「1枚分」 */
@keyframes slider {
  0%   { transform: translateX(0); }
  100% { transform: translateX(calc(-1 * (var(--w-top) + var(--gap-top)))); }
}

@keyframes slider02 {
  0%   { transform: translateX(calc(-1 * (var(--w-bottom) + var(--gap-bottom)))); }
  100% { transform: translateX(0); }
}

:root{
  --w-top: 2006px;
  --h-top: 208px;
  --gap-top: 40px;

  --w-bottom: 1919px;
  --h-bottom: 201px;
  --gap-bottom: 40px;

  --t-top: 20s;
  --t-bottom: 20s;
}

@media (max-width: 768px){
  :root{
    --w-top: 200vw;
    --gap-top: 4vw;
    --t-top: 20s;

    --w-bottom: 200vw;
    --gap-bottom: 4vw;
    --t-bottom: 20s;
  }

	.slider {
		top: 2vw;
	}
	.slider02 {
		bottom: 4vw;
	}

  .slider img{
    width: 200vw;
    height: auto;
  }
  .slider02 img{
    width: 200vw;
    height: auto;
  }


}

/* slider iPadver */
@media (min-width: 768px) and (max-width: 1366px) {

  .slider,
  .slider02{
    contain: initial;
    opacity: 0.9999;
    -webkit-filter: blur(0);
  }

  @keyframes slider_ipad {
    0%       { transform: translate3d(0,0,0.01px) }
    99.999%  { transform: translate3d(calc(-1 * (var(--w-top) + var(--gap-top))),0, 0.01px); }
    100%     { transform: translate3d(calc(-1 * (var(--w-top) + var(--gap-top))),0, 0.01px); }
  }

  @keyframes slider02_ipad {
    0%       { transform: translate3d(calc(-1 * (var(--w-bottom) + var(--gap-bottom))),0, 0.01px); }
    99.999%  { transform: translate3d(0,0,0.01px); }
    100%     { transform: translate3d(0,0,0.01px); }
  }

  .slider   { animation-name: slider_ipad; }
  .slider02 { animation-name: slider02_ipad; }
}


.footer_banner {
  position: relative;
}

.footer_banner_fixed {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 12%;
  margin: auto;
  width: 90%;
  z-index: 3;
}

/* 固定時だけ親を fixed にする */
.footer_banner_fixed.is-fixed {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: auto;
  margin: auto;
  padding: 12px 0;
  width: 100%;
  z-index: 100;
  transition: none !important;
  animation: none !important;
  background: #000000;
}
.footer_banner_fixed.is-fixed img {
  width: min(320px, 100%);
  height: auto;
}

.footer_banner_fixed img {
  width: 100%;
  height: auto;
  display: block;
}