@charset "UTF-8";

/* ===========================================================
   Fonts
=========================================================== */
@font-face {
  font-family: "UDShinGoPro";
  src: url("../fonts/A-OTF-UDShinGoPro-Heavy.otf") format("opentype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NotoSansCJKjp";
  src: url("../fonts/NotoSansCJKjp-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ===========================================================
   #mainContents — Cool Cart Campaign
=========================================================== */
.sp_br {
  display: none;
}

#mainContents {
  background: #fff;
}

#mainContents .cc-page {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #000;
  line-height: 1.7;
  background: #fff;
  font-size: 16px;
  text-align: center;
  overflow: hidden;
  width: 100%;
}

#mainContents .cc-page * {
  box-sizing: border-box;
}

#mainContents .cc-page img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  border: 0;
}

#mainContents .cc-page a {
  color: inherit;
  text-decoration: none;
}

#mainContents .cc-page .u-pc { display: inline; }
#mainContents .cc-page .u-sp { display: none; }

#mainContents .cc-inner {
  margin: 0 auto;
  padding: 0;
  background: url(../images/bg_shine_pc.png) center 43% no-repeat;
  background-size: 100% auto;
}

/* ===========================================================
   KV
=========================================================== */
.cc-kv {
  position: relative;
  background: #65beff;
  width: 100%;
  overflow: hidden;
}

.cc-kv__inner {
  position: relative;
  width: 100%;
}

.cc-kv__img {
  display: block;
  width: 100%;
  height: auto;
}

.cc-kv__img--pc { display: block; }
.cc-kv__img--sp { display: none; }

.cc-kv__btn {
  position: absolute;
  left: 50%;
  bottom: 3.6%;
  transform: translateX(-50%);
  width: 30%;
  max-width: 640px;
  min-width: 280px;
  z-index: 2;
  display: block;
  transition: opacity .2s;
}
.cc-kv__btn:hover { opacity: .85; }

.cc-kv__btn-img {
  display: block;
  width: 100%;
  height: auto;
}
.cc-kv__btn-img--pc { display: block; }
.cc-kv__btn-img--sp { display: none; }

/* ===========================================================
   Intro section
=========================================================== */
.cc-intro {
  background: #e0ffff;
  padding: 30px 0 40px;
  text-align: center;
}

.cc-intro__links {
  font-size: 28px;
  margin: 0 0 26px;
  line-height: 1.8;
  color: #3278c8;
}
#mainContents .cc-page .cc-intro__links a {
  color: #3278c8;
  display: inline-block;
  text-decoration: underline;
  text-decoration-color: #3278c8;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.cc-intro__links a:hover {
  opacity: .7;
}

.cc-intro__main-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 auto 24px;
  padding: 10px 0 30px;
}

.cc-intro__lead {
  font-family: "UDShinGoPro", "Noto Sans JP", sans-serif;
  font-weight: 900;
  font-size: 28px;
  color: #000;
  margin: 0 0 14px;
  line-height: 1.7;
  letter-spacing: .02em;
  position: relative;
  z-index: 1;
}

.cc-intro__main {
  font-family: "UDShinGoPro", "Noto Sans JP", sans-serif;
  font-weight: 900;
  color: #3278c8;
  font-size: 48px;
  line-height: 1.5;
  margin: 0;
  letter-spacing: .02em;
  position: relative;
  z-index: 1;
}

.cc-intro__highlight {
  background: linear-gradient(transparent 55%, #ffff00 55%, #ffff00 95%, transparent 95%);
  padding: 0 4px;
}

.cc-intro__note {
  background: #fff;
  border-radius: 14px;
  padding: 24px 15px 24px;
  max-width: 1050px;
  margin: 0 auto 14px;
}
.cc-intro__note-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  font-size: 28px;
  color: #000;
  margin: 0 0 16px;
  line-height: 1.6;
  letter-spacing: 0;
}
.cc-intro__note-text .cc-pink {
  color: #3278c8;
  font-size: 36px;
}
.cc-intro__note-icon {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  font-size: 28px;
  color: #000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  letter-spacing: .02em;
}
.cc-intro__note-arrow {
  display: inline-block;
  width: 13px;
  height: auto;
  margin: 0 4px;
}
.cc-intro__note-ico {
  width: 60px;
  height: auto;
}

.cc-intro__disclaimer {
  font-size: 15px;
  color: #000;
  line-height: 1.7;
  max-width: 800px;
  margin: 0 auto;
}

/* ===========================================================
   Feature section (bg_bluearea as background)
=========================================================== */
.cc-feature {
  background: #00bfff;
  padding: 0;
  position: relative;
  color: #fff;
  overflow: hidden;
}

.cc-feature__inner {
  position: relative;
  width: 100%;
  height: 1160px;
  margin: 0 auto;
  background: url("../images/bg_bluearea_pc.png") center center no-repeat;
  background-size: 1400px 1160px;
}

.cc-feature__desc {
  position: absolute;
  color: #fff;
  line-height: 1.5;
  margin: 0;
  font-size: 24px;
  font-family: "Noto Sans JP", sans-serif;
  text-align: left;
  letter-spacing: .005em;
  font-weight: bold;
}

/* desc 1: under "大風量を体感ください" (right side, upper area) */
/* bg 1400 centered: title 1 at bg x≈650-1280, y≈160-300 */
.cc-feature__desc--1 {
  top: 310px;
  left: calc(50% - 30px);
  width: 600px;
}

/* desc 2: under "人感センサーで自動送風！" (left side, lower area) */
/* bg 1400 centered: title 2 at bg x≈140-840, y≈580-740 */
.cc-feature__desc--2 {
  top: 710px;
  left: calc(50% - 485px);
  width: 700px;
}

.cc-feature__btn {
  position: absolute;
  left: 50%;
  bottom: 95px;
  transform: translateX(-50%);
  z-index: 2;
  text-align: center;
}
.cc-feature__btn-link {
  display: inline-block;
  width: 640px;
  transition: opacity .2s;
}
.cc-feature__btn-link:hover { opacity: .85; }

.cc-feature__btn-img {
  display: block;
  width: 100%;
  height: auto;
}
.cc-feature__btn-img--pc { display: block; }
.cc-feature__btn-img--sp { display: none; }

/* ===========================================================
   Terms section
=========================================================== */
.cc-terms {
  background: #fff;
  padding: 80px 0 30px;
  text-align: left;
  color: #63625c;
}

.cc-terms__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 0;
}

.cc-terms__title {
  font-family: "NotoSansCJKjp", "Noto Sans JP", sans-serif;
  font-weight: 700;
  color: #63625c;
  font-size: 38px;
  text-align: center;
  margin: 0 0 30px;
  letter-spacing: .3em;
}

.cc-terms__heading {
  font-family: "NotoSansCJKjp", "Noto Sans JP", sans-serif;
  font-weight: 700;
  color: #00b4ff;
  font-size: 22px;
  margin: 30px 0 12px;
  padding: 0 0 6px;
  letter-spacing: .04em;
  line-height: 1.5;
  border-bottom: 2px solid #00b4ff;
}

.cc-terms__body p {
  font-size: 19px;
  color: #63625c;
  line-height: 1.9;
  margin: 0 0 6px;
}

.cc-terms__body ul {
  font-size: 19px;
  color: #63625c;
  line-height: 1.9;
  margin: 0 0 6px;
  list-style: none;
  padding: 0;
}
.cc-terms__body ul li {
  padding-left: 1em;
  text-indent: -1em;
}
.cc-terms__body ul li::before {
  content: "・";
}

.cc-terms__sub {
  font-family: "NotoSansCJKjp", "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #63625c;
  font-size: 14px;
  margin: 10px 0 2px;
}

.cc-terms__note {
  font-size: 15px;
  margin: 14px 0 14px 0 !important;
}
.cc-terms__note-inline {
  display: inline-block;
  font-size: 15px;
  padding-left: 1em;
  text-indent: -1em;
}

/* ===========================================================
   Page top
=========================================================== */
.cc-pagetop {
  text-align: center;
  margin: 40px auto 20px;
}
.cc-pagetop a {
  display: inline-block;
  transition: opacity .2s;
}
.cc-pagetop a:hover { opacity: .7; }
.cc-pagetop img {
  width: 70px;
  height: auto;
}

/* ===========================================================
   Responsive — SP (≤ 768px)
=========================================================== */
@media screen and (max-width: 768px) {
  
  .sp_br {
    display: block;
  }

  #mainContents .cc-page {
    font-size: 13px;
  }

  #mainContents .cc-page .u-pc { display: none; }
  #mainContents .cc-page .u-sp { display: inline; }

  #mainContents .cc-inner {
    padding: 0 0;
    background:none;
  }

  /* KV */
  .cc-kv__img--pc { display: none; }
  .cc-kv__img--sp { display: block; width: 100%; }
  .cc-kv__btn {
    width: 85%;
    bottom: 11.5%;
  }
  .cc-kv__btn-img--pc { display: none; }
  .cc-kv__btn-img--sp { display: block; }

  /* Intro */
  .cc-intro {
    padding: 24px 0 24px;
  }
  .cc-intro__links {
    font-size: 18px;
    margin-bottom: 14px;
    line-height: 2.2;
  }
  .cc-intro__main-wrap {
    aspect-ratio: auto;
    padding: 10px 0;
    margin-bottom: 18px;
    max-width: 100%;
    background-image: url("../images/bg_shine_sp.png");
    background-size: 100% auto;
    background-position: center 100%;
  }
  .cc-intro__lead {
    font-size: clamp(18px, 2.5vw, 18px);
    margin-bottom: 18px;
    line-height: 1.7;
    letter-spacing: -0.02em;
  }
   
  .cc-intro__main {
    font-size: clamp(26px, 3.4vw, 26px);
    line-height: 1.5;
    letter-spacing: -0.02em;
  }
  .cc-intro__main span.small {
    font-size: clamp(20px, 2.5vw, 20px);
   }

  .cc-intro__note {
    padding: 22px 15px 22px;
    border-radius: 14px;
    margin-bottom: 14px;
    max-width: 90%;
  }
  .cc-intro__note-text {
    font-size: clamp(18px, 2.4vw, 18px);
    margin-bottom: 16px;
    line-height: 1.6;
  }
  .cc-intro__note-text .cc-pink {
    font-size: 19px;
  }
  .cc-intro__note-icon {
    font-size: clamp(22px, 2.4vw, 22px);
    gap: 8px;
  }
  .cc-intro__note-arrow {
    width: clamp(10px, 1.8vw, 13px);
    margin: 0 4px;
  }
  .cc-intro__note-ico {
    width: clamp(60px, 11vw, 85px);
  }
  .cc-intro__disclaimer {
    font-size: 11px;
    text-align: center;
    padding: 0 6px;
    line-height: 1.8;
  }

  /* Feature */
  .cc-feature {
    padding: 0;
  }
  .cc-feature__inner {
    background-image: url("../images/bg_bluearea_sp.png");
    background-size: 100% 100%;
    background-position: center top;
    aspect-ratio: 800 / 2280;
    width: 104.17vw;
    height: auto;
    min-width: 0;
    max-width: none;
    margin-left: -2.085vw;
    transform: none;
  }

  .cc-feature__desc {
    font-size: clamp(21px, 3.4vw, 21px);
    font-weight: 700;
    text-align: left;
    line-height: 1.5;
    left: auto;
    transform: none;
    width: 80vw;
    max-width: 560px;
  }

  /* SP: desc 1 below title 1 (text aligned with title 1 left) */
  .cc-feature__desc--1 {
    top: 34%;
    left: 8%;
    right: auto;
  }

  /* SP: desc 2 below title 2 (text aligned with title 2 left) */
  .cc-feature__desc--2 {
    top: 73.7%;
    left: 8%;
    right: auto;
  }

  .cc-feature__btn {
    position: absolute;
    left: 50%;
    bottom: 4%;
    transform: translateX(-50%);
    margin-top: 0;
  }
  .cc-feature__btn-link {
    width: 85vw;
    min-width: 0;
  }
  .cc-feature__btn-img--pc { display: none; }
  .cc-feature__btn-img--sp { display: block; }

  /* Terms */
  .cc-terms {
    padding: 26px 0 20px;
  }
  .cc-terms__inner {
    padding: 0 16px;
  }
  .cc-terms__title {
    font-size: 28px;
    margin-bottom: 20px;
    letter-spacing: .25em;
    font-weight: bold;
    color: #63625c;
  }
  .cc-terms__heading {
    font-size: 22px;
    margin: 22px 0 10px;
    padding: 0 0 6px;
    border-bottom: 2px solid #00b4ff;
    background: transparent;
    text-align: center;
    color: #00b4ff;
    letter-spacing: .04em;
  }
  .cc-terms__body p,
  .cc-terms__body ul {
    font-size: 16px;
    line-height: 1.8;
  }
  .cc-terms__note {
    font-size: 13px;
  }
  .cc-terms__note-inline {
    font-size: 13px;
  }
  .cc-terms__sub {
    font-size: 13px;
  }

  .cc-pagetop img {
    width: 50px;
  }
}
