@layer reset,base,components,project,custom;

@layer custom {
  /* 納品後に変更する（cssを上書きする）場合はこの中に記述してください（優先されます） */
}

@layer reset {
  /*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.css */
  /* Reset box-model and set borders */
  /* ============================================ */

  *,
  ::before,
  ::after {
    box-sizing: border-box;
    border-style: solid;
    border-width: 0;
    min-width: 0;
  }

  /* Document */
  /* ============================================ */

  /**
  * 1. Correct the line height in all browsers.
  * 2. Prevent adjustments of font size after orientation changes in iOS.
  * 3. Remove gray overlay on links for iOS.
  */

  html {
    line-height: 1.15; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
    -webkit-tap-highlight-color: transparent; /* 3*/
  }

  /* Sections */
  /* ============================================ */

  /**
  * Remove the margin in all browsers.
  */

  body {
    margin: 0;
  }

  /**
  * Render the `main` element consistently in IE.
  */

  main {
    display: block;
  }

  /* Vertical rhythm */
  /* ============================================ */

  p,
  table,
  blockquote,
  address,
  pre,
  iframe,
  form,
  figure,
  dl {
    margin: 0;
  }

  /* Headings */
  /* ============================================ */

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
    margin: 0;
  }

  /* Lists (enumeration) */
  /* ============================================ */

  ul,
  ol {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  /* Lists (definition) */
  /* ============================================ */

  dt {
    font-weight: bold;
  }

  dd {
    margin-left: 0;
  }

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

  /**
  * 1. Add the correct box sizing in Firefox.
  * 2. Show the overflow in Edge and IE.
  */

  hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
    border-top-width: 1px;
    margin: 0;
    clear: both;
    color: inherit;
  }

  /**
  * 1. Correct the inheritance and scaling of font size in all browsers.
  * 2. Correct the odd `em` font sizing in all browsers.
  */

  pre {
    font-family: monospace, monospace; /* 1 */
    font-size: inherit; /* 2 */
  }

  address {
    font-style: inherit;
  }

  /* Text-level semantics */
  /* ============================================ */

  /**
  * Remove the gray background on active links in IE 10.
  */

  a {
    background-color: transparent;
    text-decoration: none;
    color: inherit;
  }

  /**
  * 1. Remove the bottom border in Chrome 57-
  * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
  */

  abbr[title] {
    text-decoration: underline dotted; /* 2 */
  }

  /**
  * Add the correct font weight in Chrome, Edge, and Safari.
  */

  b,
  strong {
    font-weight: bolder;
  }

  /**
  * 1. Correct the inheritance and scaling of font size in all browsers.
  * 2. Correct the odd `em` font sizing in all browsers.
  */

  code,
  kbd,
  samp {
    font-family: monospace, monospace; /* 1 */
    font-size: inherit; /* 2 */
  }

  /**
  * Add the correct font size in all browsers.
  */

  small {
    font-size: 80%;
  }

  /**
  * Prevent `sub` and `sup` elements from affecting the line height in
  * all browsers.
  */

  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }

  sub {
    bottom: -0.25em;
  }

  sup {
    top: -0.5em;
  }

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

  /**
  * Prevent vertical alignment issues.
  */

  svg,
  img,
  embed,
  object,
  iframe {
    vertical-align: bottom;
  }

  /* Forms */
  /* ============================================ */

  /**
  * Reset form fields to make them styleable.
  * 1. Make form elements stylable across systems iOS especially.
  * 2. Inherit text-transform from parent.
  */

  button,
  input,
  optgroup,
  select,
  textarea {
    -webkit-appearance: none; /* 1 */
    appearance: none;
    vertical-align: middle;
    color: inherit;
    font: inherit;
    background: transparent;
    padding: 0;
    margin: 0;
    border-radius: 0;
    text-align: inherit;
    text-transform: inherit; /* 2 */
  }

  /**
  * Correct cursors for clickable elements.
  */

  button,
  [type="button"],
  [type="reset"],
  [type="submit"] {
    cursor: pointer;
  }

  button:disabled,
  [type="button"]:disabled,
  [type="reset"]:disabled,
  [type="submit"]:disabled {
    cursor: default;
  }

  /**
  * Improve outlines for Firefox and unify style with input elements & buttons.
  */

  :-moz-focusring {
    outline: auto;
  }

  select:disabled {
    opacity: inherit;
  }

  /**
  * Remove padding
  */

  option {
    padding: 0;
  }

  /**
  * Reset to invisible
  */

  fieldset {
    margin: 0;
    padding: 0;
    min-width: 0;
  }

  legend {
    padding: 0;
  }

  /**
  * Add the correct vertical alignment in Chrome, Firefox, and Opera.
  */

  progress {
    vertical-align: baseline;
  }

  /**
  * Remove the default vertical scrollbar in IE 10+.
  */

  textarea {
    overflow: auto;
  }

  /**
  * Correct the cursor style of increment and decrement buttons in Chrome.
  */

  [type="number"]::-webkit-inner-spin-button,
  [type="number"]::-webkit-outer-spin-button {
    height: auto;
  }

  /**
  * Correct the outline style in Safari.
  */

  [type="search"] {
    outline-offset: -2px; /* 1 */
  }

  /**
  * Remove the inner padding in Chrome and Safari on macOS.
  */

  [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  /**
  * 1. Correct the inability to style clickable types in iOS and Safari.
  * 2. Fix font inheritance.
  */

  ::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
  }

  /**
  * Fix appearance for Firefox
  */
  [type="number"] {
    -moz-appearance: textfield;
  }

  /**
  * Clickable labels
  */

  label[for] {
    cursor: pointer;
  }

  /* Interactive */
  /* ============================================ */

  /*
  * Add the correct display in Edge, IE 10+, and Firefox.
  */

  details {
    display: block;
  }

  /*
  * Add the correct display in all browsers.
  */

  summary {
    display: list-item;
  }

  /*
  * Remove outline for editable content.
  */

  [contenteditable]:focus {
    outline: auto;
  }

  /* Tables */
  /* ============================================ */

  /**
  1. Correct table border color inheritance in all Chrome and Safari.
  */

  table {
    border-color: inherit; /* 1 */
    border-collapse: collapse;
  }

  caption {
    text-align: left;
  }

  td,
  th {
    vertical-align: top;
    padding: 0;
  }

  th {
    text-align: left;
    font-weight: bold;
  }
}

@layer base {
  :root {
    --zenkaku: "Zen Kaku Gothic New", sans-serif;
    --outfit: "Outfit", sans-serif;
    --main-color: #001d58;
    --font-color: #80929f;
  }
  html {
    scroll-behavior: smooth;
    scroll-padding-top: 3rem;
  }
  html.is-hidden body {
    pointer-events: none;
  }
  @media screen and (min-width: 1600px) {
    html {
      font-size: calc(160px / 1400 * 100);
    }
  }

  @media screen and (min-width: 768px) and (max-width: 1599px) {
    html {
      font-size: calc(10vw / 1400 * 100);
    }
  }

  @media screen and (max-width: 767px) {
    html {
      font-size: calc(10vw / 390 * 100);
    }
  }

  body {
    font-family: var(--zenkaku);
    font-size: 1.6rem;
    font-feature-settings: "palt";
    margin: 0;
    color: var(--font-color);
    font-weight: 500;
    background-color: #cae6fb;
    line-height: 1.6;
  }
  img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
  }
  [x-cloak] {
    display: none !important;
  }
}

@layer components {
  .c-button-angle {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    height: 3.6rem;
    background-color: #739aff;
    box-shadow: 0.2rem 0.2rem 0 0 #3d27e2;
    color: white;
    font-size: 1.4rem;
    font-weight: bold;
    border-radius: 0.4rem;
    transition: transform .3s, box-shadow .3s;
  }
  @media (hover: hover) {
    .c-button-angle:hover {
      transform: translate(0.2rem,0.2rem);
      box-shadow: 0 0 0 0 #3d27e2;
    }
  }
  .c-button-angle::after {
    content: '';
    display: block;
    width: 1.3rem;
    height: 1.2rem;
    background-image: url(../img/common/ic-angle.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    position: absolute;
    top: 50%;
    right: 1.5rem;
    transform: translate(0,-50%);
  }

  .c-modal {
    background-color: rgba(201, 215, 255, 0.7);
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    max-height: 100vh;
    overflow-y: scroll;
    padding: 3rem;
    z-index: 1000;
  }
  .c-modal__close {
    position: absolute;
    top: 0;
    right: 0;
    transform: translate(50%,-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.9rem;
    aspect-ratio: 1/1;
    border-radius: 100%;
    background-color: #ff95b9;
    box-shadow: 0.2rem 0.2rem 0 0 #fe6198;
  }
  .c-modal__close img {
    width: 2rem;
  }
  .c-modal__inner {
    border-radius: 1rem;
    box-shadow: 0 0 0.5rem 0.2rem rgba(0,0,0,0.15);
    width: 35rem;
    max-width: 100%;
    padding: 3rem 2rem;
    background-size: 100% auto;
    background-position: top center;
    background-repeat: repeat-y;
    margin-inline: auto;
    position: relative;
  }
  .c-modal__popup {
    border-radius: 1rem;
    width: 35rem;
    max-width: 100%;
    margin-inline: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
  }
  .c-modal__popup-inner{
    border: solid 2px black;
  }
  .c-modal__popup-desc {
    background-color: white;
    padding: 2rem;
    text-align: center;
  }
  .c-modal__popup-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    width: 28rem;
    height: 3.5rem;
    background-color: #739aff;
    color: white;
    margin-inline: auto;
    margin-top: 1rem;
  }
  .c-modal__inner--movie {
    background-image: url(../img/modal-movie-bg.jpg);
  }
  .c-modal__inner--movie .c-modal__dt {
    background-color: #80929f;
  }
  .c-modal__inner--on {
    background-image: url(../img/modal-on-bg.jpg);
  }
  .c-modal__inner--on .c-modal__title {
    color: #fc5b88;
  }
  .c-modal__inner--on .c-modal__share {
    background-color: #fc5b88;
    box-shadow: 0.2rem 0.2rem 0 0 #fe9fb0;
  }
  .c-modal__inner--off {
    background-image: url(../img/modal-off-bg.jpg);
  }
  .c-modal__inner--off .c-modal__title {
    color: #3d27e2;
  }
  .c-modal__inner--off .c-modal__dt {
    background-color: #739aff;
  }
  .c-modal__inner--off .c-modal__share {
    background-color: #3d27e2;
    box-shadow: 0.2rem 0.2rem 0 0 #739aff;
  }
  .c-modal__title-set {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: calc(100% + 4rem);
    margin-inline: -2rem;
    margin-bottom: 1rem;
  }
  .c-modal__title-icon {
    width: 7.3rem;
  }
  .c-modal__title {
    font-size: 2rem;
    font-weight: bold;
  }
  .c-modal__movie {
    width: 25rem;
    margin-inline: auto;
    position: relative;
  }
  .c-modal__movie::after {
    content: '';
    display: block;
    width: 6.2rem;
    aspect-ratio: 1/1;
    background-image: url(../img/movie-angle.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
  }
  .c-modal__movie.is-active::after {
    display: none;
  }
  .c-modal__movie iframe {
    width: 100%;
    height: auto !important;
    aspect-ratio: 9/16;
    position: relative;
    z-index: 2;
  }
  .c-modal__youtube-embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
  }
  .c-modal__image {
    width: 25rem;
    margin-inline: auto;
  }
  .c-modal__content {
    background-color: white;
    border-radius: 1rem;
    padding: 2rem 1.5rem;
    margin-top: 3rem;
  }
  .c-modal__content-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
  }
  .c-modal__content-head .in-icon {
    width: 7.5rem;
  }
  .c-modal__stars {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .c-modal__stars img {
    width: 2.3rem;
  }
  .c-modal__dl {}
  .c-modal__dt {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f8778d;
    border-radius: 0.4rem;
    color: white;
    font-size: 1.6rem;
    font-weight: bold;
    padding: 0.5rem 2rem;
  }
  .c-modal__dd {
    margin-block: 1rem 1.5rem;
    font-size: 1.3rem;
    letter-spacing: -0.1rem;
  }
  .c-modal__dd:last-of-type {
    margin-bottom: 0;
  }
  .c-modal__share {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin-top: 2rem;
    margin-inline: auto;
    width: 22.2rem;
    height: 5rem;
    border-radius: 0.3rem;
    color: white;
    font-size: 1.5rem;
    padding-right: 3rem;
  }
  .c-modal__share .in-x {
    content: '';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    aspect-ratio: 1/1;
    background-color: white;
    border-radius: 100%;
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translate(0,-50%);
  }
  .c-modal__share .in-x img {
    width: 1.2rem;
  }
  .c-modal__inner--on .c-modal__share::after {
    background-image: url(../img/common/ic-x-pink.png);
  }
  .c-modal__share-movie {
    position: relative;
    margin-top: 3rem;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    width: 26.3rem;
    height: 8.2rem;
    background-color: #739aff;
    box-shadow: 0.2rem 0.2rem 0 0 #1f5dff;
    border-radius: 0.4rem;
    color: white;
    transition: box-shadow .3s, transform .3s;
  }
  @media (hover: hover){
    .c-modal__share-movie:hover {
      box-shadow: 0 0 0 0 #1f5dff;
      transform: translate(0.2rem,0.2rem);
    }
  }
  .c-modal__share-movie::before {
    content: '';
    display: block;
    width: 8.1rem;
    height: 7.2rem;
    background-image: url(../img/common/ic-on.png);
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    left: 1rem;
    top: -2.5rem;
  }
  .c-modal__share-movie::after {
    content: '';
    display: block;
    width: 7.1rem;
    height: 6.7rem;
    background-image: url(../img/common/ic-off.png);
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    right: -0.3rem;
    top: -3rem;
  }
  .c-modal__share-movie > .in-text {
    font-size: 1.6rem;
    color: white;
    line-height: 1.3;
  }
  .c-modal__x {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.2rem;
    aspect-ratio: 1/1;
    background-color: white;
    border-radius: 100%;
  }
  .c-modal__x img {
    width: 2.2rem;
  }

  .c-campaign-item {
    border: solid 0.4rem #6e94ff;
    border-radius: 0.5rem;
    background: linear-gradient(155deg,#e1e9fc 0%, #e1e9fc 37rem, transparent 37rem);
  }
  .c-campaign-item--pink {
    background: linear-gradient(155deg,#fbd8e4 0%, #fbd8e4 37rem, transparent 37rem);
    border: solid 0.4rem #f8778d;
  }
  .c-campaign-item__title {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #6e94ff;
    color: white;
    font-size: 1.6rem;
    font-weight: bold;
    padding-bottom: 0.5rem;
  }
  .c-campaign-item--pink .c-campaign-item__title {
    background-color: #f8778d;;
  }
  .c-campaign-item__inner {
    padding: 1.5rem 0 3rem;
    display: flex;
    flex-direction: column;
    height: calc(100% - 2.5rem);
  }
  .c-campaign-item__inner--comingsoon,.c-campaign-item__inner--close {
    position: relative;
  }
  .c-campaign-item__inner--comingsoon::before,.c-campaign-item__inner--close::before {
    content: 'COMING\ASOON...';
    white-space: pre-line;
    position: absolute;
    top: 1rem;
    left: 1rem;
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: white;
    font-family: var(--outfit);
    font-size: 4.2rem;
    width: calc(100% - 2rem);
    height: calc(100% - 2.5rem);
    z-index: 1;
    font-weight: 600;
    line-height: 1.1;
  }
  .c-campaign-item__inner--close::before {
    content: 'キャンペーンは\A終了しました';
  }
  .c-campaign-item__copy-image {
    width: 21.5rem;
    margin-inline: auto;
    margin-bottom: 1.5rem;
  }
  .c-campaign-item__copy-image--02 {
    width: 25rem;
  }
  .c-campaign-item__copy-image--03 {
    width: 28rem;
    margin-block: 1rem;
  }
  .c-campaign-item__image {
    width: 30rem;
    margin-inline: auto;
    margin-bottom: 1.5rem;
  }
  .c-campaign-item__image--02 {
    width: 27rem;
  }
  .c-campaign-item__text {
    font-size: 1.4rem;
    line-height: 1.4;
    color: #426ad1;
    letter-spacing: 0;
    width: 30rem;
    margin-inline: auto;
  }
  .c-campaign-item__detail-list {
    width: 30rem;
    margin-inline: auto;
    margin-bottom: 1.5rem;
  }
  .c-campaign-item__detail-list--02 {
    width: 27rem;
  }
  .c-campaign-item__detail-list .in-flex {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
  }
  .c-campaign-item__detail-list .in-flex .c-campaign-item__detail-title {
    margin-top: 0;
  }
  .c-campaign-item__detail-list .in-flex .c-campaign-item__detail-title:last-of-type:not(:first-of-type) {
    margin-left: 1rem;
  }
  .c-campaign-item__detail-title {
    display: inline-flex;
    height: 2rem;
    align-items: center;
    padding-inline: 0.5rem;
    background-color: #6e94ff;
    color: white;
    font-size: 1.4rem;
    border-radius: 0.2rem;
    margin-top: 1rem;
  }
  .c-campaign-item__detail-title:first-of-type {
    margin-top: 0;
  }
  .c-campaign-item__detail-data {
    letter-spacing: -0.15rem;
    line-height: 1.2;
    font-weight: bold;
  }
  .c-campaign-item__detail-data .in-pink {
    color: #f8778d;
  }
  .c-campaign-item__detail-data .in-blue {
    color: #6e94ff;
  }
  .c-campaign-item__detail-data .in-large {
    font-size: 2.4rem;
  }
  .c-campaign-item__detail-data .in-bold {
    font-weight: bolder;
  }
  .c-campaign-item__detail-data--medium {
    font-size: 1.7rem;
    font-weight: bold;
    white-space: nowrap;
  }
  .c-campaign-item__detail-data--center {
    text-align: center;
    line-height: 1.3;
  }
  .c-campaign-item__detail-data--small {
    font-size: 1.4rem;
  }
  .c-campaign-item__button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20rem;
    height: 3.6rem;
    background-color: #80929f;
    font-size: 1.3rem;
    color: white;
    margin-top: 2.5rem;
    margin-inline: auto;
    position: relative;
  }
  .c-campaign-item__button::after {
    content: '';
    display: block;
    width: 1rem;
    height: 1rem;
    background-image: url(../img/common/ic-blank.png);
    background-size: contain;
    background-position: center;
    position: absolute;
    top: 50%;
    right: 1.6rem;
    transform: translate(0,-50%);
  }
  .c-campaign-item__button--anchor {
    background-color: #739AFF;
  }
  .c-campaign-item__button--anchor::after {
    display: none;
  }
  .c-campaign-item__button--end {
    width: 24rem;
  }
  .c-campaign-item__button--end::after {
    display: none;
  }

  .c-product-item {
    width: 33rem;
    margin-inline: auto;
    padding-bottom: 4rem;
  }
  .c-product-item:last-of-type {
    padding-bottom: 0;
  }
  .c-product-item__image {
    margin-bottom: 1.5rem;
  }
  .c-product-item__inner {
    padding-inline: 0.3rem;
  }
  .c-product-item__copy {
    font-size: 2.1rem;
    margin-bottom: 1rem;
  }
  .c-product-item__list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .c-product-item__check-item {
    position: relative;
    padding-inline: 2.6rem 0.5rem;
    font-size: 1.4rem;
    background-color: white;
    border-radius: 1rem;
    white-space: nowrap;
  }
  .c-product-item__check-item::before {
    content: '';
    display: block;
    width: 1.8rem;
    height: 1.7rem;
    background-image: url(../img/common/ic-check-pink.png);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    left: 0.2rem;
    top: 0.3rem;
  }
  .c-product-item__check-item--blue::before {
    background-image: url(../img/common/ic-check-blue.png);
  }
  .c-product-item__attention {
    font-size: 1.2rem;
    margin-top: 1rem;
  }
  .c-product-item__button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28rem;
    height: 4.2rem;
    border-radius: 0.3rem;
    background-color: #80929f;
    color: white;
    font-size: 1.3rem;
    position: relative;
    margin-top: 2rem;
    margin-inline: auto;
  }
  .c-product-item__button::after {
    content: '';
    display: block;
    width: 1rem;
    aspect-ratio: 1/1;
    background-image: url(../img/common/ic-blank.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 50%;
    right: 1.3rem;
    transform: translate(0,-50%);
  }
  
  .c-footer {}
  .c-footer__inner {
    background-image: url(../img/footer/footer-bg.jpg);
    background-size: 100% auto;
    padding: 4rem 4rem 2rem;
  }
  .c-footer__sns-list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.3rem;
    margin-bottom: 2rem;
  }
  .c-footer__sns-item a {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f8778d;
    border-radius: 100%;
    width: 4.6rem;
    aspect-ratio: 1/1;
  }
  .c-footer__sns-item--blue a {
    background-color: #739aff;
  }
  .c-footer__sns-item a .ic-x {
    width: 2.5rem;
  }
  .c-footer__sns-item a .ic-insta {
    width: 2.5rem;
  }
  .c-footer__nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
  }
  .c-footer__nav-item a {
    font-size: 1.4rem;
    color: #739aff;
    font-weight: bold;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .c-footer__nav-item a img {
    width: 1.5rem;
  }
  .c-footer__copyright {
    padding: 1rem;
    background-color: white;
    text-align: center;
    color: #739aff;
    font-size: 1.2rem;
    font-weight: bold;
  }
}

@layer project {
  .p-home {}
  .p-home__mv {
    height: 56rem;
    position: relative;
    margin-bottom: 5rem;
    max-width: 140rem;
    margin-inline: auto;
  }
  @media screen and (max-width: 768px) {
    .p-home__mv {
      height: auto;
      aspect-ratio: 78/96;
      margin-bottom: 0;
    }
  }
  .p-home__mv-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
  }
  .p-home__mv-inner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 82.5rem;
    height: 45rem;
    transform: translate(-50%,-50%);
  }
  @media screen and (max-width: 768px) {
    .p-home__mv-inner {
      width: 33rem;
      height: 18rem;
      top: 14.1rem;
      left: 50%;
      transform: translate(-50%,0);
    }
  }
  .p-home__mv-inner img {
    position: absolute;
  }
  .p-home__mv-inner > .in-text-bg {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
  }
  @media screen and (max-width: 768px) {
  }
  .p-home__mv-inner > .in-switch {
    width: 41.3rem;
    bottom: 1.4rem;
    left: 1.2rem;
    opacity: 0;
  }
  @media screen and (max-width: 768px) {
    .p-home__mv-inner > .in-switch {
      width: 16.5rem;
      left: 0.5rem;
      bottom: 0.6rem;
    }
  }
  .p-home__mv-inner > .in-text-on {
    width: 45rem;
    top: 1rem;
    left: 5.5rem;
    opacity: 0;
  }
  @media screen and (max-width: 768px) {
    .p-home__mv-inner > .in-text-on {
      width: 18rem;
      top: 0.4rem;
      left: 2.2rem;
    }
  }
  .p-home__mv-inner > .in-text-off {
    width: 48rem;
    top: 12.8rem;
    right: 1.2rem;
    opacity: 0;
  }
  @media screen and (max-width: 768px) {
    .p-home__mv-inner > .in-text-off {
      width: 19rem;
      top: 5.2rem;
      right: 0.3rem;
    }
  }
  .p-home__mv-inner > .in-text-switch {
    width: 37.2rem;
    bottom: 5.8rem;
    right: 1.2rem;
    opacity: 0;
  }
  @media screen and (max-width: 768px) {
    .p-home__mv-inner > .in-text-switch {
      width: 14.7rem;
      bottom: 2.4rem;
      right: 0.5rem;
    }
  }
  .p-home__main-contents-wrap {
    display: flex;
    align-items: flex-start;
    opacity: 0;
    transition: opacity 0.3s;
    max-width: 140rem;
    margin-inline: auto;
  }
  .p-home__main-side-logo {
    width: calc(calc(100% - 39rem) / 2);
    height: 100vh;
    position: sticky;
    top: 0;
    background-image: url(../img/pc-left.png);
    background-size: contain;
    background-position: bottom right;
    background-repeat: no-repeat;
  }
  @media (max-aspect-ratio: 1/1) {
    .p-home__main-side-logo {
      background-position: center right;
    }
  }
  @media screen and (max-width: 769px) {
    .p-home__main-side-logo {
      display: none;
    }
  }
  .p-home__main-content {
    width: 39rem;
    background-color: white;
    box-shadow: 0 0 0.8rem 0.1rem rgba(0,0,0,0.2);
    position: relative;
    z-index: 1;
  }
  @media screen and (max-width: 769px) {
    .p-home__main-content {
      width: 100%;
      box-shadow: none;
    }
  }
  .p-home__main-side-menu {
    width: calc(calc(100% - 39rem) / 2);
    height: 100vh;
    position: sticky;
    top: 0;
    background-image: url(../img/pc-right.png);
    background-size: contain;
    background-position: bottom left;
    background-repeat: no-repeat;
    padding-left: 12.8rem;
    padding-bottom: 37rem;
    display: flex;
    align-items: flex-end;
  }
  @media (max-aspect-ratio: 1/1) {
    .p-home__main-side-menu {
      background-position: center left;
      align-items: center;
      padding-top: 5rem;
    }
  }
  @media screen and (max-width: 769px) {
    .p-home__main-side-menu {
      display: none;
    }
  }
  .p-home__pc-menu-title {
    width: 9.2rem;
    margin-bottom: 2.2rem;
  }
  .p-home__pc-menu-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .p-home__pc-menu-item {
    transition: transform .3s, opacity .3s;
  }
  @media (hover: hover){
    .p-home__pc-menu-item:hover {
      transform: translate(0.2rem, 0.2rem);
      opacity: 0.7;
    }
  }
  .p-home__pc-menu-item img {
    height: 2.8rem;
  }
  .p-home__pc-menu-item--hight img {
    height: 4.4rem;
  }
  .p-home__main-content-head {
    padding: 2.7rem 3.4rem;
  }
  .p-home__main-content-head > .in-text {
    text-align: center;
    font-size: 1.8rem;
    font-weight: bold;
    margin-bottom: 0.7rem;
    width: calc(100% + 6.8rem);
    margin-inline: -3.4rem;
  }
  .p-home__main-content-head > .in-text > .in-pink {
    color: #f8778d;
  }
  .p-home__main-content-head > .in-text > .in-blue {
    color: #739aff;
  }
  .p-home__about {
    border-radius: 4rem;
    width: calc(100% - 0.5rem);
    margin-inline: auto;
    background-image: url(../img/about-bg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 4rem 2rem;
  }
  .p-home__about-bg-text {
    width: 34rem;
    margin-inline: auto;
    display: block;
  }
  .p-home__about-title-illust {
    width: 31rem;
    margin-top: -5rem;
  }
  .p-home__about-title {
    display: block;
    width: 29rem;
    margin-inline: auto;
    margin-top: -1rem;
  }
  .p-home__about-main-text {
    text-align: center;
    margin-top: 1rem;
    font-size: 1.8rem;
    font-weight: bold;
    color: #426ad1;
    line-height: 1.6;
    white-space: nowrap;
    letter-spacing: 0;
    width: calc(100% + 3rem);
    margin-inline: -1.5rem;
    position: relative;
  }
  .p-home__about-main-text > .in-ic-mobile {
    position: absolute;
    width: 5.9rem;
    right: -0.5rem;
    top: -4rem;
  }
  .p-home__about-main-text .in-on {
    font-size: 2.2rem;
    padding: 0 0.2rem;
    color: white;
    background-color: #f8778d;
    box-shadow: 0.2rem 0.2rem 0 0 #fe3f5e;
    margin-right: 0.3rem;
    line-height: 1.3;
  }
  .p-home__about-main-text .in-off {
    font-size: 2.2rem;
    padding: 0 0.2rem;
    color: white;
    background-color: #739aff;
    box-shadow: 0.2rem 0.2rem 0 0 #1f5dff;
    margin-right: 0.3rem;
    line-height: 1.3;
  }
  .p-home__about-main-text .in-pink {
    color: #f8778d;
    font-size: 2.2rem;
  }
  .p-home__about-main-text .in-blue {
    color: #739aff;
    font-size: 2.2rem;
  }
  .p-home__about-main-text .in-small {
    font-size: 1.8rem !important;
  }
  .p-home__about-text {
    margin-block: 1.5rem;
    text-align: center;
    font-size: 1.6rem;
    font-weight: bold;
    position: relative;
    color: #426ad1;
  }
  .p-home__about-text > .in-ic-cup {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 5.2rem;
  }
  .p-home__about-icons {
    width: 33.4rem;
    display: block;
    margin-inline: auto;
    margin-top: 2rem;
  }
  .p-home__campaign {
    padding-block: 3.5rem;
  }
  .p-home__campaign-title {
    text-align: center;
    font-size: 2.4rem;
    font-weight: bold;
    font-family: var(--outfit);
    color: #f8778d;
    margin-bottom: 1.5rem;
  }
  .p-home__campaign-swiper-wrap {
    position: relative;
    overflow: hidden;
  }
  .p-home__campaign-swiper .swiper-slide {
    padding-inline: 1.5rem;
    height: auto !important;
  }
  .p-home__campaign-arrow {
    position: absolute;
    top: 24rem;
    width: 8.1rem;
    aspect-ratio: 1/1;
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 11;
  }
  .p-home__campaign-arrow::before {
    content: '';
    display: block;
    width: 1rem;
    height: 2rem;
    background-image: url(../img/common/ic-angle-white.png);
    background-size: contain;
    background-repeat: no-repeat;
  }
  .p-home__campaign-prev {
    transform: translate(-50%,0);
    background-color: #f83154;
    padding-left: 3.5rem;
    left: 0;
  }
  .p-home__campaign-prev::before {
    transform: rotate(180deg);
  }
  .p-home__campaign-next {
    transform: translate(50%,0);
    background-color: #426ad1;
    padding-right: 3.5rem;
    right: 0;
  }
  .p-home__campaign-pagination {
    position: relative !important;
    display: flex;
    align-items: center;
    justify-content: center;
    top: auto !important;
    bottom: auto !important;
    margin-top: 1.5rem;
  }
  .p-home__campaign-pagination .swiper-pagination-bullet {
    background-color: #f8778d !important;
    opacity: 0.3;
  }
  .p-home__zukan-wrap {
    position: relative;
    padding: 1.2rem 1.2rem 3rem;
    background-image: url(../img/common/bg-cross.jpg);
  }
  .p-home__zukan-wrap::before {
    content: '';
    display: block;
    width: 50%;
    height: 100%;
    position: absolute;
    pointer-events: none;
    border: solid 0.5rem #739aff;
    border-right: none;
    top: 0;
    left: 0;
  }
  .p-home__zukan-wrap::after {
    content: '';
    display: block;
    width: 50%;
    height: 100%;
    position: absolute;
    pointer-events: none;
    border: solid 0.5rem #f8778d;
    border-left: none;
    top: 0;
    right: 0;
  }
  .p-home__zukan-intro {
    position: relative;
  }
  .p-home__zukan-intro > .in-icons {
    position: absolute;
    top: 1.2rem;
    right: 1.5rem;
    width: 16rem;
  }
  .p-home__zukan-intro > .in-circle {
    left: 2.5rem;
    top: 3.5rem;
    width: 8.2rem;
    position: absolute;
  }
  .p-home__zukan-intro > .in-title {
    width: 27.5rem;
    margin-inline: auto;
    padding-top: 4rem;
    display: block;
  }
  .p-home__zukan-intro > .in-bus {
    width: 6.4rem;
    position: absolute;
    left: -1.1rem;
    top: 16rem;
  }
  .p-home__zukan-intro > .in-cup {
    position: absolute;
    right: 2rem;
    top: 26rem;
    width: 5.2rem;
  }
  .p-home__zukan-intro > .in-main-text {
    text-align: center;
    font-size: 1.8rem;
    font-weight: bold;
    margin-block: 1.5rem;
  }
  .p-home__zukan-intro > .in-main-text > .in-katipohu {
    width: 7.6rem;
    margin-right: 0.4rem;
  }
  .p-home__zukan-intro > .in-text {
    text-align: center;
    font-size: 1.6rem;
    font-weight: bold;
    margin-block: 1.5rem;
    position: relative;
  }
  .p-home__zukan-intro > .in-text-pink {
    text-align: center;
    font-size: 1.6rem;
    font-weight: bold;
    margin-block: 1.5rem;
    position: relative;
    color: #f8778d;
  }
  .p-home__zukan-intro > .in-text > .in-controller {
    position: absolute;
    width: 4.3rem;
    top: -1rem;
    left: 0;
  }
  .p-home__zukan-banner {
    display: block;
    width: 32rem;
    margin-top: -2.8rem;
    margin-inline: auto;
  }
  .p-home__zukan-attention {
    width: 30rem;
    margin: 1.3rem auto 2rem;
    color: #426ad1;
    font-size: 1.2rem;
    font-weight: bold;
  }
  .p-home__zukan-icon-list {
    width: 33.4rem;
    margin-inline: auto;
    margin-top: 2rem;
  }
  .p-home__zukan-title-enjoy {
    width: 27.5rem;
    margin-block: 2.5rem;
    margin-inline: auto;
  }
  .p-home__zukan-tab {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 1rem;
  }
  .p-home__zukan-tab--bottom {
    position: relative;
    z-index: 1;
  }
  .p-home__zukan-tab-item {
    background-color: #e1e6fc;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 7rem;
    border-radius: 2rem 2rem 0 0 / 2rem 2rem 0 0;
    box-shadow: 0.1rem 0.1rem 0.2rem 0 rgba(0,0,0,0.2);
    transition: background-color .3s;
  }
  .p-home__zukan-tab-item--bottom {
    border-radius: 0 0 2rem 2rem / 0 0 2rem 2rem;
  }
  .p-home__zukan-tab-item.is-current {
    background-color: #fce1f6;
  }
  .p-home__zukan-tab-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.4rem;
    aspect-ratio: 1/1;
    font-size: 2.4rem;
    font-family: var(--outfit);
    font-weight: bold;
    color: white;
    border-radius: 100%;
    background-color: #abc1ff;
    box-shadow: 0.2rem 0.2rem 0 0 #6992ff;
    transition: background-color .3s, box-shadow .3s, transform .3s;
  }
  @media (hover: hover) {
    .p-home__zukan-tab-num:hover {
      transform: translate(0.2rem,0.2rem);
      box-shadow: 0 0 0 0 #6992ff;
    }
  }
  .p-home__zukan-tab-item.is-current .p-home__zukan-tab-num {
    transform: translate(0.2rem,0.2rem);
    background-color: #ff95b9;
    box-shadow: 0 0 0 0 #fe6198;
  }
  .p-home__zukan-contents-wrap {
    background-color: #fce1f6;
    margin-top: -0.1rem;
    position: relative;
    padding: 3.6rem 1.7rem 2.5rem;
    box-shadow: 0.1rem 0.1rem 0.2rem 0 rgba(0,0,0,0.2);
  }
  .p-home__zukan-content-movie {
    width: 24.8rem;
    margin-inline: auto;
    cursor: pointer;
    position: relative;
  }
  .p-home__zukan-content-movie::after {
    content: '';
    display: block;
    width: 6.2rem;
    aspect-ratio: 1/1;
    background-image: url(../img/movie-angle.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
  }
  .p-home__zukan-content-list {
    margin-top: 3rem;
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 2.8rem 1.4rem;
  }
  .p-home__zukan-content-item {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
  }
  .p-home__zukan-content-item:nth-of-type(odd) .c-button-angle {
    background-color: #f8899c;
    box-shadow: 0.2rem 0.2rem 0 0 #fc5b88;
  }
  @media (hover: hover) {
    .p-home__zukan-content-item:nth-of-type(odd) .c-button-angle:hover {
      box-shadow: 0 0 0 0 #fc5b88;
    }
  }
  .p-home__zukan-content-item:nth-of-type(odd) .c-button-angle::after {
    background-image: url(../img/common/ic-angle-blue.png);
  }
  .p-home__zukan-button-wrap {
    margin-top: 2rem;
  }
  .p-home__zukan-button-wrap p {
    text-align: center;
    font-size: 1.4rem;
    font-weight: bold;
  }
  .p-home__zukan-button-wrap p .in-bubble {
    font-size: 1.3rem;
    color: #fc5b88;
  }
  .p-home__zukan-button-wrap p .in-pink {
    font-size: 1.5rem;
    color: #f8778d;
  }
  .p-home__zukan-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27rem;
    height: 6.5rem;
    color: white;
    font-size: 2rem;
    font-weight: bold;
    position: relative;
    margin-inline: auto;
    pointer-events: none;
    background-color: #9f9f9f;
    box-shadow: 0.2rem 0.2rem 0 0 #6f6f6f;
    border-radius: 0.4rem;
    margin-top: 1rem;
    transition: background-color .3s, box-shadow .3s, transform .3s;
  }
  .p-home__zukan-button.is-active {
    background-color: #f8899c;
    box-shadow: 0.2rem 0.2rem 0 0 #fc5b88;
    pointer-events: auto;
  }
  @media (hover: hover) {
    .p-home__zukan-button.is-active:hover {
      transform: translate(0.2rem,0.2rem);
      box-shadow: 0 0 0 0 #fc5b88;
    }
  }
  .p-home__zukan-button::after {
    content: '';
    width: 1.4rem;
    height: 1.2rem;
    background-image: url(../img/common/ic-angle-blue.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    position: absolute;
    top: 50%;
    right: 1.3rem;
    transform: translate(0,-50%);
  }
  .p-home__product {
    background-color: #e1e6fc;
    padding: 4rem 3rem 4.5rem;
  }
  .p-home__product-head {
    text-align: center;
    margin-bottom: 1.5rem;
  }
  .p-home__product-head > .in-sub {
    font-size: 1.4rem;
    font-weight: bold;
    color: #739aff;
    font-family: var(--outfit);
  }
  .p-home__product-head > .in-main {
    font-size: 2.4rem;
    letter-spacing: 0.2rem;
    font-weight: bold;
  }
  .p-home__product-desc {
    text-align: center;
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 2rem;
  }
  .p-home__product-desc > .in-on {
    width: 5.6rem;
  }
  .p-home__product-desc > .in-off {
    width: 5.7rem;
  }
  .p-home__product-desc > .in-large {
    font-size: 1.9rem;
  }
  .p-home__product {}
}