﻿@charset "UTF-8";

/* ========================================================
                      * Variable *
========================================================= */
:root {
  --pw: 1600; /* PC幅 */
  --sw: 750; /* SP幅 */
  --artboard-pw: 600; /* PCアートボード幅 */
  --artboard-sw: 750; /* SPアートボード幅 */
  --rem: calc(var(--variable) * var(--ratio));
  --rem-pc: var(--variable);
  --transition-timing: cubic-bezier(0.51, 0.21, 0.41, 1);

  --lp-background-color: #fff;
  --base-font-color: #828282;
  --color-accent: #e8c4ce;

  --lp-font-ja: helvetica-neue-lt-pro, hiragino-kaku-gothic-pron, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, HiraKakuProN-W3, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, Verdana, Helvetica, Arial, sans-serif;

  --font-helvetica-light: 300;
  --font-helvetica-regular: 400;
  --font-helvetica-medium: 500;
  --font-helvetica-bold: 700;
}

@media (768px <= width) {
  :root {
    --ratio: calc(var(--artboard-pw) / var(--artboard-sw));
    --variable: calc(100vw / var(--pw));
  }
}
@media (1600px <= width) {
  :root {
    --variable: 1px;
  }
}
@media (width < 768px) {
  :root {
    --ratio: 1;
    --variable: calc(100vw / var(--sw));
  }
}

/* ========================================================
                      * Layout style *
========================================================= */
/* html {
  scroll-behavior: smooth;
  font-size: 62.5%
}
main {
  max-width: 100%;
} */

/* @media (768px <= width) {
  #Wrap,
  .wrapBottom,
  .wrapTop,
  #Contents {
    width: 100%;
  }
} */
/* #FooterWrap {
  position: relative;
} */


/* ===================
  Animation
=================== */
.fade {
  opacity: 0;
  transition: opacity 1.8s var(--transition-timing);
  &.is-active {
    opacity: 1;
  }
  &.--delay {
    transition-duration: 2s;
    transition-delay: .2s;
  }
}


/* ===================
  LP Contents
=================== */
.lp_contents {
  --letter-spacing: .1em;
  position: relative;
  background: var(--lp-background-color, transparent);
  color: var(--base-font-color, #000);
  font-family: var(--lp-font-ja);
  font-weight: 300;
  font-size: calc(20 * var(--rem));
  font-style: normal;
  letter-spacing: var(--letter-spacing);
  & * {
    font-feature-settings: "palt";
  }
  & *,
  & *:before,
  & *:after {
    box-sizing: border-box;
  }
  & :where(h1, h2, h3, h4, h5, p, ul, ol, li, dl, dt, dd, a, button, figure, figcaption, span, sup) {
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: var(--letter-spacing);
  }
  & ul,
  & li {
    list-style: none;
  }
  & :where(img) {
    display: block;
    max-width: 100%;
    height: auto;
  }
  & sup {
    top: 0;
    font-size: .6em;
    vertical-align: super;
  }
  & :where(a, a:before, a:after, a img, button) {
    --duration: .3s;
    --timing: ease-in-out;
    transition:
      opacity var(--duration) var(--timing),
      color var(--duration) var(--timing),
      background-color var(--duration) var(--timing),
      background-image var(--duration) var(--timing),
      border-color var(--duration) var(--timing),
      text-shadow var(--duration) var(--timing),
      text-weight var(--duration) var(--timing)
    ;
  }
  & :where(a) {
    color: inherit;
    text-decoration: none;
    text-underline-offset: calc(4 * var(--rem));
    @media (any-hover: hover) {
      &:hover {
        opacity: .7;
      }
    }
    @media (width < 768px) {
      &:hover {
        opacity: 1;
      }
    }
  }
  & :where(button) {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    outline: none;
  }
}


/* ===================
  Layout
=================== */
.l-mobile-first {
  position: relative;
  @media (768px <= width) {
    display: flex;
  }
}
.l-mobile-first__left,
.l-mobile-first__right {
  position: relative;
  width: calc((100% - (var(--artboard-pw) * var(--rem-pc))) / 2);
}
.l-mobile-first__sticky {
  position: sticky;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;
}
.l-mobile-first__main {
  overflow-x: clip;
  padding-block: calc(195 * var(--rem)) calc(120 * var(--rem));
  background: url(../img/bg_1.jpg) no-repeat top center/100% auto;
  @media (768px <= width) {
    width: calc(var(--artboard-pw) * var(--rem-pc));
  }
}


/* ===================
  Utility
=================== */


/* ===================
  Component
=================== */
/* count box */
.c-count-box__block {
  display: flex;
  justify-content: center;
  gap: calc(15 * var(--rem));
  margin-block: calc(80 * var(--rem)) calc(120 * var(--rem));
}
.c-count-box {
  width: calc(130 * var(--rem));
  height: calc(130 * var(--rem));
  padding-top: calc(22 * var(--rem));
  background: var(--color-accent);
  border-radius: calc(20 * var(--rem));
  color: #fff;
  text-align: center;
  & p {
    line-height: 1;
    letter-spacing: .04em;
  }
}
.c-count-box__number {
  font-size: calc(62 * var(--rem));
  font-weight: var(--font-helvetica-medium);
}
.c-count-box__label {
  margin-top: calc(9 * var(--rem));
  font-size: calc(20 * var(--rem));
  font-weight: var(--font-helvetica-light);
}

/* button */
.c-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(340 * var(--rem));
  height: calc(80 * var(--rem));
  margin-inline: auto;
  background: var(--color-accent);
  border-radius: 999px;
  color: #fff;
  font-size: calc(40 * var(--rem));
  font-weight: var(--font-helvetica-medium);
  letter-spacing: .04em;
  &.--only-pc {
    width: calc(180 * var(--rem-pc));
    height: calc(40 * var(--rem-pc));
    font-size: calc(20 * var(--rem-pc));
    font-weight: var(--font-helvetica-regular);
  }
}
.c-button--panda {
  position: relative;
  &::before {
    position: absolute;
    content: '';
    top: calc(-53 * var(--rem));
    left: calc(-37 * var(--rem));
    display: block;
    width: calc(107 * var(--rem));
    height: calc(164 * var(--rem));
    background: url(../img/img_panda.png) no-repeat top left/100% auto;
  }
  &.--only-pc {
    &::before {
      top: calc(-32 * var(--rem-pc));
      left: calc(-25 * var(--rem-pc));
      width: calc(60 * var(--rem-pc));
      height: calc(92 * var(--rem-pc));
    }
  }
}


/* ===================
  .p-main
=================== */
.p-main__image {
  width: calc(450 * var(--rem));
  margin-inline: auto;
  & img {
    width: 100%;
  }
}
.p-main__button {
  margin-top: calc(100 * var(--rem));
}
.p-main__logo {
  width: calc(332 * var(--rem));
  margin-top: calc(120 * var(--rem));
  margin-inline: auto;
  & img {
    width: 100%;
  }
}


/* ===================
  .p-top
=================== */
.p-top {
  color: var(--color-accent);
  text-align: center;
  font-weight: var(--font-helvetica-medium);
  line-height: 1;
  & p {
    letter-spacing: .04em;
  }
}
.p-top__date {
  margin-left: calc(2 * var(--rem));
  font-size: calc(36 * var(--rem));
}
.p-top__message {
  margin-top: calc(28 * var(--rem));
  margin-left: calc(4 * var(--rem));
  font-size: calc(68 * var(--rem));
}
.p-top__logo {
  width: calc(322.774 * var(--rem));
  margin-top: calc(41 * var(--rem));
  margin-inline: auto;
  & img {
    width: 100%;
  }
}


/* ===================
  .p-board
=================== */
.p-board {
  width: calc(660 * var(--rem));
  margin-top: calc(121 * var(--rem));
  margin-inline: auto;
  padding-block: calc(93 * var(--rem)) calc(85 * var(--rem));
  background: rgba(255, 255, 255, .9);
  border: 1px solid var(--color-accent);
  border-radius: calc(20 * var(--rem));
}
.p-board__heading {
  margin-left: calc(-2 * var(--rem));
  color: var(--color-accent);
  font-size: calc(44 * var(--rem));
  font-weight: var(--font-helvetica-medium);
  line-height: 1;
  letter-spacing: .04em;
  text-align: center;
}
.p-info-box {
  padding-top: calc(48 * var(--rem));
  &.--1 {
    padding-top: calc(40 * var(--rem));
    padding-bottom: calc(36 * var(--rem));
  }
  &.--2 {
    padding-bottom: calc(38 * var(--rem));
  }
  & + & {
    position: relative;
    &::before {
      position: absolute;
      content: '';
      top: 0;
      left: 50%;
      display: block;
      width: calc(460 * var(--rem));
      height: 1px;
      background: var(--base-font-color);
      translate: -50% 0;
    }
  }
}
.p-info-box__meta {
  text-align: center;
  translate: calc(1 * var(--rem));
}
.p-info-box__meta-label {
  margin-right: calc(18 * var(--rem));
  font-size: calc(24 * var(--rem));
  line-height: 1;
}
.p-info-box__meta-date {
  font-size: calc(28 * var(--rem));
  font-weight: var(--font-helvetica-bold);
  line-height: 1;
  .--small {
    font-size: calc(26 * var(--rem));
  }
}
.p-info-box__body {
  margin-top: calc(31 * var(--rem));
  & + & {
    margin-top: calc(29 * var(--rem));
  }
}
.p-info-box__label {
  margin-bottom: calc(8 * var(--rem));
  color: var(--color-accent);
  font-size: calc(24 * var(--rem));
  font-weight: var(--font-helvetica-medium);
  line-height: 1;
  letter-spacing: .04em;
  text-align: center;
}
.p-info-box__detail {
  font-size: calc(22 * var(--rem));
  font-weight: 400;
  line-height: calc(44 / 22);
  text-align: center;
  .p-info-box.--1 & {
    translate: calc(2 * var(--rem));
  }
  .p-info-box.--2 & {
    translate: calc(2 * var(--rem)) calc(2 * var(--rem));
  }
  .p-info-box.--3 & {
    translate: calc(2 * var(--rem)) calc(2 * var(--rem));
  }
  .--ja {
    font-size: calc(20 * var(--rem));
  }
}


/* ===================
  .p-logo-box
=================== */
.p-logo-box__main {
  width: calc(230 * var(--rem-pc));
  margin-inline: auto;
  & img {
    width: 100%;
  }
}


/*=======================================
               Responsive
========================================*/

/*=======================================
                    PC
========================================*/
@media (768px <= width) {
  .u-d-md {
    display: none !important;
  }
}


/*=======================================
                    SP
========================================*/
@media (width < 768px) {
  .u-d-lg {
    display: none !important;
  }
}
