﻿@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/* 共通 */
.breadcrumb {
  display: none;
}

.page-blank-body {
  font-family: 'Lato', 'Noto Sans Japanese', sans-serif;
}

body .forcms_block {
  margin: 0;
}

body,
.l-free-body {
  color: #333;
}

img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.l-free-main>.forcms_block:not(.p-lensComSearchStore):last-of-type {
  padding-bottom: 0;
}

#koukan-lp {
  background: url(../img/bg_all.png) no-repeat;
  background-size: cover;
}

.u-koukan-layout {
  max-width: 414px;
  margin: 0 auto;
  overflow: hidden;
}

.sec-inner {
  background: #fff;
  padding: 30px 0;
}

/* ------ main ------*/
section.main .u-koukan-msg {
  background: #fff;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  padding: 19px 0;
}

section.main {
  position: relative;
}

section.main .sec-inner {
  padding: 15px 18px 180px 18px;
  background: url(../img/bg01.png) no-repeat;
  color: #fff;
}

.limited-text {
  border: solid 1px #fff;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  padding: 8px 0;
  letter-spacing: 0.1em;
}

h1 {
  text-align: center;
  padding: 25px 0;
}

h1 .u-koukan-line01 {
  display: block;
  font-size: 28px;
}

h1 .u-koukan-line01 .u-font-b {
  font-weight: 600;
}

h1 .u-koukan-line01 .u-font-h {
  font-weight: 800;
}

h1 .u-koukan-line02 {
  font-size: 46px;
  color: #1DB9FF;
}

h1 .u-koukan-line03 {
  font-size: 28px;
  font-weight: 600;
}

.u-koukan-period p {
  border-top: solid 1px #fff;
  border-bottom: solid 1px #fff;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  padding: 10px 0;
}

.u-koukan-code {
  font-size: 14px;
  font-weight: 400;
  padding: 10px 0;
  text-align: center;
}

.u-koukan-desc {
  text-align: center;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.u-koukan-desc em {
  font-weight: 600;
}

section.main .u-koukan-img {
  width: calc(100% - 36px);
  position: absolute;
  z-index: 0;
  margin-top: 25px;
}

/* ------ coupon ------ */
.sec-coupon .sec-inner {
  padding: 160px 25px 57px 25px;
}




/* ------ sec01 ------ */
.sec.sec01 .sec-inner {
  padding: 130px 0 77px 0;
}

.sec.sec01 h2 {
  text-align: center;
  color: #0F1653;
}

.sec.sec01 h2 .fs-s {
  font-size: 22px;
  font-weight: 600;
}

.sec.sec01 h2 .fs-l {
  display: block;
  font-size: 32px;
  font-weight: 900;
}

.sec.sec01 .u-koukan-list ul>li dl {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 0;
}

.sec.sec01 .u-koukan-list ul>li dl::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background: #F5F5F5;
  transform: skew(-15deg);
}

.sec.sec01 .u-koukan-list ul>li {
  margin-top: 15px;
}

.sec.sec01 .u-koukan-list ul>li:nth-child(odd) {
  padding-left: 35px;
}

.sec.sec01 .u-koukan-list ul>li:nth-child(even) {
  padding-right: 35px;
}

.sec.sec01 .u-koukan-list ul>li:nth-child(even) dt {
  order: 2;
}

.sec.sec01 .u-koukan-list ul>li:nth-child(even) dd {
  order: 1;
}

.sec.sec01 .u-koukan-list ul>li dl dt {
  text-align: center;
  flex: 1;
  color: #0F1653;
}

.sec.sec01 .u-koukan-list ul>li dl dt p {
  font-size: 16px;
  font-weight: 600;
}

.sec.sec01 .u-koukan-list ul>li dl dt p span {
  display: block;
  font-weight: 900;
}

.sec.sec01 .u-koukan-list ul>li dl dd {
  width: 130px;
}




/* ------ そんなあなたに今だけのチャンス！ ------ */
.sec.sec02 .sec-inner {
  padding-top: 0;
  background: url(../img/bg03.png) no-repeat;
  color: #fff;
}

.sec.sec02 .sec-inner span {
  color: #1DB9FF;
}

.sec.sec02 .u-koukan-diamondTtl {
  margin: 0 auto;
  padding: 3px 1em 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 35px;
  font-size: 16px;
  font-weight: bold;
  color: #0F1653;
  position: relative;
  top: -15px;
  z-index: 0;
}
.sec.sec02 .u-koukan-diamondTtl::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  border: 1px solid #0F1653;
  background-color: #fff;
  transform: skew(-20deg);
}

.sec.sec02 .u-koukan-ttl.u-color-b {
  margin: 15px;
  font-size: 24px;
  font-weight: 600;
  color: #fff;
  text-align: center;
}

.sec.sec02 .u-koukan-ttl.u-color-b span {
  font-size: 24px;
  font-weight: 900;
}

.sec.sec02 .u-koukan-desc {
  font-size: 16px;
}

.sec.sec02 .u-koukan-txt {
  margin: 20px auto 0;
  padding-bottom: 6px;
  width: fit-content;
  font-size: 15px;
  font-weight: bold;
  text-align: center;
  color: #FFFF77;
  position: relative;
}
.sec.sec02 .u-koukan-txt::before,
.sec.sec02 .u-koukan-txt::after {
  position: absolute;
  content: "";
  left: 1em;
  width: calc(100% - 2em);
  height: 1px;
  background-color: #FFFF77;
}
.sec.sec02 .u-koukan-txt::before {
  bottom: 0;
}
.sec.sec02 .u-koukan-txt::after {
  bottom: 4px;
}

.sec.sec02 .u-koukan-goods-msg {
  margin-top: 25px;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  position: relative;
  z-index: 1;
}

.sec.sec02 .u-koukan-goods-msg p {
  margin-top: 14px;
  font-size: 24px;
  font-weight: 600;
}

.sec.sec02 .u-koukan-goods-msg div {
  font-size: 32px;
  font-weight: 900;
  color: #1DB9FF;
}

.sec.sec02 .u-koukan-goods-msg .note {
  display: block;
  color: #fff;
  font-size: 12px;
  text-align: center;
}

.sec.sec02 .u-koukan-goods {
  margin-top: 30px;
  padding: 30px 15px 0;
  position: relative;
  z-index: 0;
}

.sec.sec02 .u-koukan-goods:after {
  position: absolute;
  content: "";
  top: 0;
  left: 50%;
  z-index: -1;
  width: 580px;
  height: 307px;
  background: linear-gradient(to bottom, #1B3974, #2C6EA7);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform: translateX(-50%);
}


/* ------ 対象メガネ ------ */
.sec.sec03 .sec-inner {
  padding: 40px 25px 0 25px;
}

.u-koukan-megane-subject-list {
  text-align: center;
}

.u-koukan-megane-subject-list ul {
  margin-top: 30px;
  display: flex;
  gap: 0 15px;
}

.u-koukan-megane-subject-list ul li {
  width: calc((100% - (20px * 2)) / 3);
}

.u-koukan-megane-subject-list .u-koukan-subject figure {
  width: 110px;
  height: 110px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #2C6EA7;
}

.u-koukan-megane-subject-list .u-koukan-subject figure img {
  width: initial;
  display: block;
}

.u-koukan-subject-txt {
  margin-top: 15px;
  font-size: 13px;
  font-weight: 500;
}

/* 持ち物 */
.u-koukan-megane-bring {
  background: #F5F5F5;
  border-radius: 10px;
  padding: 0 10px 15px;
  position: relative;
}
.page-koukan-top .u-koukan-megane-bring {
  margin-top: 55px;
}

.diamond-title {
  margin: 0 auto;
  padding: 0 1em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 152px;
  min-height: 35px;
  text-align: center;
  color: #fff;
  position: relative;
  z-index: 0;
}
.u-koukan-megane-bring .diamond-title {
  top: -15px;
}
.diamond-title::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background-color: #0F1653;
  transform: skew(-25deg);
}

.u-koukan-megane-bring ul {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.u-koukan-megane-bring ul li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
}

.u-koukan-megane-bring ul li:not(:nth-child(2)) {
  flex: 1;
}

.u-koukan-megane-bring ul li figure {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
}

.u-koukan-megane-bring ul li figure img {
  width: initial;
  display: block;
}

.u-koukan-megane-bring-txt {
  height: 100%;
  font-size: 12px;
  font-weight: bold;
  text-align: center;
  letter-spacing: -.07em;
}


/* 注意事項 */
.u-koukan-megane-notice:not(._noborder) {
  margin-top: 40px;
  padding: 25px 0;
  border-top: solid 1px #DCDCDC;
  border-bottom: solid 1px #DCDCDC;
}
.page-koukan-under .u-koukan-megane-notice {
  margin-top: 20px;
}
.u-koukan-megane-notice h2 {
  font-size: 16px;
}
.u-koukan-megane-notice .notice-list {
  margin-top: 10px;
}
.u-koukan-megane-notice .notice-list li {
  margin-left: 1em;
  text-indent: -1em;
  font-size: 14px;
  line-height: calc(22/14);
}
.u-koukan-megane-notice .notice-list li + li {
  margin-top: 3px;
}

/* ボタン */
.u-koukan-return-btn {
  margin: 40px 0 0;
  text-align: center;
}
.u-koukan-return-btn-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 260px;
  min-height: 60px;
  font-size: 16px;
  font-weight: bold;
  color: #0F1653;
  border: 1px solid #0F1653;
  border-radius: 33px;
  background-color: #fff;
}


/* ------ 店舗確認 ------ */
.sec.sec04 .sec-inner {
  padding: 60px 25px 40px 25px;
}

.sec.sec04 .sec-inner h2 {
  text-align: center;
  font-size: 22px;
  font-weight: 600;
}

.u-koukan-shop {
  margin-top: 40px;
}

.u-koukan-shop h3 {
  background: #F5F5F5;
  padding: 11px 16px 10px 16px;
  font-weight: 600;
  font-size: 16px;
}

.u-koukan-shop dl {
  border-top: solid 1px #E8E8E8;
}

.u-koukan-shop .u-koukan-shop-list>dl:first-of-type {
  border-top: none;
}

.u-koukan-shop dt {
  font-weight: 600;
  font-size: 16px;
  padding: 20px 16px 0 16px;
}

.u-koukan-shop dd {
  padding: 5px 16px 16px;
  line-height: 1.5;
  font-size: 16px;
}




/* ------ クーポン確認 ------ */
.u-koukan-check-coupon .u-koukan-check-coupon-inner {
  background: url(../img/bg02.png);
  color: #fff;
  padding: 30px 30px;
}

.u-koukan-check-coupon .u-koukan-check-coupon-ttl {
  font-size: 24px;
  font-weight: 600;
  text-align: center;
}

.u-koukan-check-coupon .u-koukan-bt-btn {
  background: #fff;
  border-radius: 33px;
  font-size: 22px;
  font-weight: 600;
  color: #0F1653;
  text-align: center;
  padding: 16px 0 14px 32px;
  position: relative;
  margin-top: 30px;
  display: block;
}

.u-koukan-check-coupon .u-koukan-bt-btn:after {
  position: absolute;
  content: "";
  background: url(../img/icon_coupon_b.svg) no-repeat;
  background-size: 32px auto;
  width: 32px;
  height: 18px;
  left: 30px;
  top: 50%;
  transform: translate(0, -50%);
}

.u-koukan-check-coupon .u-koukan-check-coupon-txt {
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  margin-top: 26px;
  line-height: calc(35/18);
}

/* ------ クーポン共有 ------ */
.u-koukan-keep-btn.u-koukan-common-btn{
  margin-top: 44px;
  text-align: center;
}

.u-koukan-coupon-share-btn.u-koukan-keep-btn{
  margin-top: 18px;
  text-align: center;  
}

.u-koukan-keep-btn a{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 314px;
  min-height: 50px;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  border: 1px solid #000;
  border-radius: 33px;
  background-color: #fff;
  padding: 0 20px 0 0;
}

.u-koukan-keep-btn a:after{
  position: absolute;
  content: "";
  background: url(../img/icon_download.png);
  background-size: 13.5px auto;
  width: 13.5px;
  height: 14px;
  transform: translateX(105px)
}

.u-koukan-coupon-share-btn{margin-top: 18px;}
.u-koukan-coupon-share-btn a{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 314px;
  min-height: 50px;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  border: 1px solid #000;
  border-radius: 33px;
  background-color: #fff;  
}

.u-koukan-coupon-share-box{
  background: #F5F5F5;
  border-radius: 10px;
  padding: 36px 23px;
  text-align: center;
  margin-top: 40px;
}

.u-koukan-coupon-share-box .u-koukan-coupon-share-ttl{font-size: 18px;}
a.u-koukan-coupon-mail:after,
a.u-koukan-coupon-line:after{
  position: absolute;
  content: "";
  left: 30px;
  top: 50%;
  transform: translate(0, -50%);
}

a.u-koukan-coupon-mail:after{
  background: url(../img/icon_mail.png);
  background-size: 18px 13px;
  width: 18px;
  height: 13px;
}

a.u-koukan-coupon-line:after{
  background: url(../img/icon_line.png);
  background-size: 18px 13px;
  width: 18px;
  height: 13px;
}

/* フッター */
.page-koukan-top .page-foot {
  padding: 30px 0;
  background: #fff;
}
.page-koukan-top .page-foot-logo img {
  margin: 0 auto;
  width: 118px;
  display: block;
}

/* コピーライト */
.copyright {
  margin-top: 30px;
  text-align: center;
  font-size: 11px;
  font-weight: 500;
  color: #333;
}



@media screen and (max-width:740px) {
  .u-koukan-main-pc {
    display: none;
  }

  .u-koukan-logo {
    display: none;
  }

  .u-koukan-page-top {
    position: fixed;
    right: 10px;
    bottom: 80px;
    z-index: 10;
  }
  .u-koukan-page-top-inner {
    display: block;
    width: 45px;
    height: 45px;
    border: 1px solid #DCDCDC;
    border-radius: 50%;
    background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20.121" height="17.417" viewBox="0 0 20.121 17.417"><g transform="translate(-10.939 -11.67)"><path d="M366,696.42l9-9,9,9" transform="translate(-354 -675)" fill="none" stroke="%230f1653" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/><path d="M375,693.667v16.667" transform="translate(-354 -681.246)" fill="none" stroke="%230f1653" stroke-width="1.5"/></g></svg>') no-repeat center / 18px 17px;
  }
  .u-koukan-fix-link {
    position: fixed;
    left: 50%;
    bottom: 0;
    z-index: 10;
    width: 100%;
    max-width: 414px;
    transform: translateX(-50%);
    transition: .3s linear;
  }
  .u-koukan-fix-link.is-hidden {
    bottom: -100%;
  }
  .u-koukan-fix-link-inner {
    padding-right: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 60px;
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    background-color: rgba(44, 110, 167, .95);
  }
  .u-koukan-fix-link-inner::before {
    content: "";
    width: 32px;
    height: 18px;
    display: block;
    background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="18" viewBox="0 0 32 18"><rect width="32" height="18" rx="1" fill="%23fff"/><path d="M106.4,763v18" transform="translate(-82.277 -763)" fill="none" stroke="%23004750" stroke-width="1.5" stroke-dasharray="2"/></svg>') no-repeat center / contain;
    position: relative;
    top: 1px;
  }
}

@media screen and (min-width:741px) {
  /* body {
    min-width: 1140px !important;
  } */

  .page-koukan-top {
    background: url(../img/bg_all.png) no-repeat center / 100% 100%;
    background-attachment: fixed;
  }

  .u-koukan-wrap {
    /* display: flex;
    gap: 0 100px;
    width: fit-content;
    padding-right: 240px; */
  }

  .u-koukan-check-coupon .u-koukan-bt-btn {
    cursor: pointer;
  }

  .u-koukan-logo {
    position: sticky;

  }

  .u-koukan-main-pc {
    /* width: fit-content; */
  }

  .u-koukan-layout {
    margin: 0 auto;
    width: 414px;
    min-width: 414px;
  }

  .u-koukan-main-pc img {
    position: fixed;
    top: 35px;
    right: 40px;
    width: 164px;
  }

  .u-koukan-lead {
    position: fixed;
    top: 50vh;
    left: 15px;
    text-align: center;
    font-weight: 600;
    color: #0F1653;
    width: calc((100vw - 444px) / 2);
    /* min-width: 490px; */
    /* padding: 50px; */
    transform: translateY(-50%);
  }

  .u-koukan-lead .u-koukan-line01,
  .u-koukan-lead .u-koukan-line03 {
    font-size: min(calc(36 / 1500 * 100vw), 36px);
  }

  .u-koukan-lead .u-koukan-line02 {
    font-size: min(calc(64 / 1500 * 100vw), 64px);
  }

  .u-koukan-btn {
    margin: 30px 0 0;
  }

  .u-koukan-btn-inner {
    background: #2C6EA7;
    border-radius: 33px;
    font-size: min(calc(20 / 1500 * 100vw), 20px);
    font-weight: 600;
    color: #fff;
    text-align: center;
    padding: 16px 0 14px 40px;
    position: relative;
    width: min(calc(336 / 1500 * 100vw), 336px);
    margin: 0 auto;
    display: block;
  }

  .u-koukan-btn-inner._back {
    padding: 16px 40px 14px;
    color: #0F1653;
    border: 1px solid #0F1653;
    background-color: #fff;
  }

  .u-koukan-btn-inner:not(._back):after {
    position: absolute;
    content: "";
    background: url(../img/icon_coupon.svg) no-repeat;
    background-size: auto;
    background-size: min(calc(32 / 1500 * 100vw), 32px) auto;
    width: min(calc(32 / 1500 * 100vw), 32px);
    height: min(calc(18 / 1500 * 100vw), 18px);
    left: min(calc(50 / 1500 * 100vw), 50px);
    top: 50%;
    transform: translate(0, -50%);
  }

  .u-koukan-page-top, .u-koukan-fix-link {
    display: none;
  }
}

@media screen and (max-width:1020px) {
  .u-koukan-main-pc {
    display: none;
  }
}