@charset "UTF-8";

/*! 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;
}

/*-------- Splide --------*/
.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}

/*-------- Variables --------*/

:root {
    --font-family:  'Lato', 'Noto Sans JP', sans-serif;
    --font-size-pc: 1.5rem;
    --font-size-sp: 1.4rem;
    --line-height: 2;
    --color-black: #000;
    --color-white: #fff;
    --color-text: #1b3245;
    --color-gray: #87898f;
    --color-key1: #1b3245;
    --color-key2: #bd3742;
    --color-key3: #ecedec;
    --color-blue1: #8D99A2;
    --color-blue2: #70787A;
}

/*-------- Base --------*/
html {
    font-size: 62.5%;
}


body {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-family);
  font-size: var(--font-size-sp);
  font-weight: 400;
  line-height: var(--line-height);
  background-color: var(--color-white);
}

@media screen and (min-width: 768px) {
    body {
        font-size: var(--font-size-pc);
    }
}

body:has(.l-header__nav.is-active) {
  overflow: hidden;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
    transition: 0.3s ease-in;
}

/*-------- header --------*/
.l-header {
  width: 100%;
  height: 60px;
  background-color: var(--color-white);
  position: sticky;
  top: 0;
  left: 0;
  z-index: 1000;
}

@media screen and (min-width: 768px) {
  .l-header {
    height: 62px;
  }
}

.l-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    padding-right: 30px;
    padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .l-header__inner {
    max-width: 1140px;
    margin: 0 auto;
  }
}

.l-header__logo {
  position: relative;
  width: 66px;
  height: auto;
  transform: translateY(2px);
  line-height: 0;
  z-index: 1;
}

@media screen and (min-width: 768px) {
  .l-header__logo {
    width: 90px;
  }
}

.l-header__logo-img.is-active {
  filter: invert(100%) sepia(100%) saturate(1%) hue-rotate(199deg) brightness(102%) contrast(101%);
}

.l-header__logo-link {
  display: block;
  width: 100%;
  height: 100%;
}

.l-header__nav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  visibility: hidden;
  background-color: var(--color-blue1);
  overflow-y: auto;
  transition: 0.3s ease-in;
}

.l-header__nav.is-active {
  height: 100dvh;
  visibility: visible;
}

.l-header__nav-inner {
  padding: 60px 30px 30px;
}

@media screen and (min-width: 768px) {
  .l-header__nav-inner {
    max-width: 580px;
    margin: 0 auto;
    padding: 62px 50px 50px;
  }
}

.l-header__nav-btn {
  cursor: pointer;
  position: relative;
  display: block;
  width: 36px;
  height: 36px;
  position: relative;
  z-index: 1;
}

@media screen and (min-width: 768px) {
  .l-header__nav-btn {
    width: 45px;
    height: 45px;
  }
}

.l-header__nav-btn-item {
  display: block;
  width: 100%;
  height: 100%;
}

.l-header__nav-btn-item-line {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--color-text);
  transition: 0.3s ease-in;
}

.l-header__nav-btn-item-line:nth-child(1) {
  top: 10px;
  left: 0;
  transform: none;
}

@media screen and (min-width: 768px) {
  .l-header__nav-btn-item-line {
    top: 12px;
  }
}

.l-header__nav-btn-item-line:nth-child(2) {
  top: 24px;
  left: 0;
  transform: none;
}

@media screen and (min-width: 768px) {
  .l-header__nav-btn-item-line:nth-child(2) {
    top: 31px;
  }
}

.l-header__nav-btn-item-line.is-active:nth-child(1),
.l-header__nav-btn-item-line.is-active:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--color-white);
}

.l-header__nav-btn-item-line.is-active:nth-child(1) {
  transform: translateY(-50%) rotate(25deg);
}

.l-header__nav-btn-item-line.is-active:nth-child(2) {
  transform: translateY(-50%) rotate(-25deg);
}

.l-header__nav-list {
  border-top: 1px solid var(--color-white);
}

.l-header__nav-item {
  border-bottom: 1px solid var(--color-white);
  text-align: center;
}

.l-header__nav-link {
  display: block;
  width: 100%;
  height: 100%;
  padding: 25px 0;
  color: var(--color-white);
  font-size: 2.1rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: 0.3s ease-in;
}

@media screen and (min-width: 768px) {
  .l-header__nav-link {
    font-size: 2.8rem;
  }
}

.l-header__nav-link:hover {
  opacity: 1;
}

@media screen and (min-width: 768px) {
  .l-header__nav-link:hover {
  opacity: 0.7;
  }
}

@media screen and (hover: hover) {
  .l-header__nav-link:hover {
    opacity: 0.7;
  }
}



.l-header__nav-sns {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  padding: 25px 0;
  border-bottom: 1px solid var(--color-white);
}

.l-header__nav-sns-item {
  width: 30px;
}

@media screen and (min-width: 768px) {
  .l-header__nav-sns-item {
    width: 40px;
  }
}

.l-header__nav-official {
  padding: 25px 0 0;
}

.l-header__nav-official-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
}

.l-header__nav-official-link {
  display: flex;
  align-items: center;
  gap: 15px;
  transition: 0.3s ease-in;
}

.l-header__nav-official-link:hover {
  opacity: 1;
}

@media screen and (min-width: 768px) {
  .l-header__nav-official-link:hover {
    opacity: 0.7;
  }
}

@media screen and (hover: hover) {
  .l-header__nav-official-link:hover {
    opacity: 0.7;
  }
}

.l-header__nav-sns-link {
  transition: 0.3s ease-in;
}

.l-header__nav-sns-link:hover {
  opacity: 1;
}

@media screen and (min-width: 768px) {
  .l-header__nav-sns-link:hover {
    opacity: 0.7;
  }
}

@media screen and (hover: hover) {
  .l-header__nav-sns-link:hover {
    opacity: 0.7;
  }
}

.l-header__nav-official-img {
  width: 50px;
}

@media screen and (min-width: 768px) {
  .l-header__nav-official-img {
    width: 60px;
  }
}

.l-header__nav-official-text {
  color: var(--color-white);
}

/*-------- footer --------*/
.l-footer {
  width: 100%;
  padding-top: 40px;
  padding-bottom: 20px;
  border-top: 1px solid var(--color-blue1);
  background-color: var(--color-key3);
  text-align: center;
}

@media screen and (min-width: 768px) {
  .l-footer {
    padding-top: 50px;
  }
}

.l-footer__inner {
    padding-right: 30px;
    padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .l-footer__inner {
    max-width: 1140px;
    margin: 0 auto;
  }
}

.l-footer__logo {
  display: block;
  width: 120px;
  margin: 0 auto 40px;
  line-height: 0;
}

@media screen and (min-width: 768px) {
  .l-footer__logo {
    width: 160px;
  }
}

.l-footer__logo-img {
  width: 100%;
}

.l-footer__copyright {
  color: var(--color-blue2);
  font-size: 1.1rem;
  font-weight: 300;
  line-height: 1.8;
}

/*-------- component --------*/
.c-section-title {
  position: absolute;
  top: -20px;
  left: 30px;
  height: 172px;
  background-color: var(--color-key2);
  color: var(--color-white);
  padding: 10px 0;
  writing-mode: vertical-rl;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: right;
  z-index: 1;
  transform: scaleY(0); 
  transform-origin: top center;
  will-change: transform, opacity;

}

@media screen and (min-width: 768px) {
  .c-section-title {
    left: 50px;
    height: 206px;
    padding: 12px 0;
    font-size: 2.1rem;
  }
}

.c-section-title::before {
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  display: block;
  width: 1px;
  height: calc(100% + 30px);
  background-color: var(--color-key2);
}

@media screen and (min-width: 768px) {
  .c-section-title::before {
    height: calc(100% + 36px);
  }
}

.c-products-card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr 1fr;
  width: 100%;
  height: 100%;
  padding: 0 25px 20px;
  z-index: 1;
}

.c-products-card::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: '';
  display: block;
  width: 100%;
  height: calc(100% - 120px);
  background-color: var(--color-white);
  border-radius: 8px;
  z-index: -1;
}

@media screen and (min-width: 768px) {
  .c-products-card::after {
    height: calc(100% - calc(144 / 1280 * 100vw));
  }
}

@media screen and (min-width: 1280px) {
  .c-products-card::after {
    height: calc(100% - 144px);
  }
}

.c-products-card__img {
  display: block;
  width: calc(224px / 1.09);
  height: auto;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .c-products-card__img {
    width: calc(calc(224 / 1280 * 100vw));
  }
}

@media screen and (min-width: 1280px) {
  .c-products-card__img {
    width: 224px;
  }
}

.c-products-card__content {
  position: relative;
  margin-top: -10px;
  padding-top: 12px;
  border-top: 1px solid var(--color-blue1);
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  row-gap: 10px;
}

.p-top-products__splide {
  margin-bottom: 23px;
}

@media screen and (min-width: 768px) {
  .p-top-products__splide {
    margin-bottom: 38px;
  }
}

@media screen and (max-width: 767px) {
  .p-top-products__splide .splide__track {
    overflow: visible;
  }
}

.c-products-card__content-text01 {
  font-size: var(--font-size-sp);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  text-align: center;
  align-self: center;
}

@media screen and (min-width: 768px) {
  .c-products-card__content-text01 {
    font-size: 1.6rem;
  }
}

.c-products-card__content-title01 {
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.03em;
  text-align: center;
  align-self: center;
}

@media screen and (min-width: 768px) {
  .c-products-card__content-title01 {
    font-size: 2.8rem;
  }
}

.c-products-card__content-text02 {
  font-size: var(--font-size-sp);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.05em;
  text-align: center;
  align-self: center;
}

@media screen and (min-width: 768px) {
  .c-products-card__content-text02 {
    font-size: 1.5rem;
  }
}

.c-btn {
  display: block;
  width: 100%;
  height: 44px;
  padding-right: 32px;
  padding-left: 10px;
  font-size: 1.3rem;
  line-height: 44px;
  text-align: center;
  transition:  all 0.3s ease-in;
  letter-spacing: 0.1em;
}

@media screen and (min-width: 768px) {
  .c-btn {
    height: 48px;
     line-height: 48px;
  }
}

.c-btn--small {
  max-width: 190px;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .c-btn--small {
    max-width: 210px;
  }
}

.c-btn--large {
  max-width: 315px;
  margin: 0 auto;
}

.c-btn--external {
  background-image: url(../img/common/icon_external_white.svg);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 21px auto;
}

.c-btn--internal {
  background-image: url(../img/common/icon_internal_blue.svg);
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 21px auto;
}

.c-btn--more {
  color: var(--color-white);
  background-color: var(--color-text);
  text-transform: uppercase;
}

.c-btn--more:hover {
  opacity: 1;
}

@media screen and (hover: hover) {
  .c-btn--more:hover {
   opacity: 0.7;
  }
}

.c-btn--more-p02 {
  background-color: var(--color-white);
  color: var(--color-text);
  text-transform: uppercase;
}

.c-btn--more-p02:hover {
  background-color: var(--color-white);
}

.c-btn--more-p02:hover {
  opacity: 1;
}

@media screen and (hover: hover) {
  .c-btn--more-p02:hover {
   opacity: 0.5;
  }
}

/*-------- pagetop --------*/
.p-pagetop {
  position: fixed;
  bottom: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  z-index: 900;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.p-pagetop.is-active {
  opacity: 1;
  visibility: visible;
}

@media screen and (min-width: 768px) {
  .p-pagetop {
    bottom: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
  }
}

.p-pagetop__link {
  display: block;
  width: 100%;
  height: 100%;
}

/*-------- main --------*/
.l-main {
  overflow: clip;
}

/*-------- top --------*/
/* mainvisual */
.p-top-mainvisual {
  width: 100%;
  height: calc(606px * 0.9);
  background-color: var(--color-white);
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual {
    height: calc(720 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual {
    height: 720px;
  }
}

/* 1366px × 768pxの画面サイズ用の調整 */
@media screen and (min-width: 1280px) and (max-width: 1366px) and (max-height: 768px) {
  .p-top-mainvisual {
    height: 622px;
  }
}

/* 高さが700px以下の場合（より小さい画面） */
@media screen and (min-width: 1280px) and (max-height: 700px) {
  .p-top-mainvisual {
    height: calc(100svh - 62px);
    min-height: 622px;
  }
}

.p-top-mainvisual__inner {
  position: relative;
  width: 100%;
  height: 100%;
  
}

.p-top-mainvisual__loading {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.p-top-mainvisual__loading.is-active {
  opacity: 1;
  visibility: visible;
}

.p-top-mainvisual__loading-img {
  width: 98px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__loading-img {
    width: 110px;
  }
}

.p-top-mainvisual__content {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -15px) scale(0.9);
  width: 375px;
  margin: 0 auto;
  opacity: 0;
  visibility: hidden; /* 初期状態で非表示 */
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__content {
    max-width: inherit;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1);
    width: calc(1280 / 1280 * 100vw);
    height: 100%;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__content {
    width: 1280px;
  }
}

/* 1366px × 768pxの画面サイズ用の調整 */
@media screen and (min-width: 1280px) and (max-width: 1366px) and (max-height: 768px) {
  .p-top-mainvisual__content {
    transform: translate(-50%, -50%) scale(0.75);
  }
}

/* 高さが700px以下の場合（より小さい画面） */
@media screen and (min-width: 1280px) and (max-height: 700px) {
  .p-top-mainvisual__content {
    transform: translate(-50%, calc(-50% - 50px)) scale(0.8);
  }
}

.p-top-mainvisual__text {
  position: absolute;
  display: inline-block;
  padding: 11px 23px;
  background-color: var(--color-text);
  color: var(--color-white);
  font-size: 3.8rem;
  font-weight: 300;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  transform: scaleX(0);
  will-change: transform, opacity;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text {
    padding: calc(17 / 1280 * 100vw) calc(40 / 1280 * 100vw);
    font-size: calc(65 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text {
    padding: 17px 40px;
    font-size: 6.5rem;
  }
}

.p-top-mainvisual__text01 {
  top: 24px;
  left: 82px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text01 {
    top: 0;
    left: calc(-37 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text01 {
    top: 0;
    left: -37px;
  }
}

.p-top-mainvisual__text02 {
  top: 121px;
  left: -40px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text02 {
    top: calc(111 / 1280 * 100vw);
    left: calc(312 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text02 {
    top: 111px;
    left: 312px;
  }
}

.p-top-mainvisual__text03 {
  top: 188px;
  left: 57px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text03 {
    top: calc(224 / 1280 * 100vw);
    left: calc(61 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text03 {
    top: 224px;
    left: 61px;
  }
}

.p-top-mainvisual__text04 {
  top: 257px;
  left: -50px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text04 {
    top: calc(336 / 1280 * 100vw);
    left: calc(-20 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text04 {
    top: 336px;
    left: -20px;
  }
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text05 {
    top: calc(445 / 1280 * 100vw);
    left: calc(236 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text05 {
    top: 445px;
    left: 236px;
  }
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text06 {
    top: calc(28 / 1280 * 100vw);
    right: calc(133 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text06 {
    top: 28px;
    right: 133px;
  }
}

.p-top-mainvisual__text07 {
  top: 92px;
  right: -122px;
  background-color: var(--color-key2);
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text07 {
    top: calc(140 / 1280 * 100vw);
    right: calc(84 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text07 {
    top: 140px;
    right: 84px;
  }
}

.p-top-mainvisual__text08 {
  top: 159px;
  right: -106px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text08 {
    top: calc(252 / 1280 * 100vw);
    right: calc(251 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text08 {
    top: 252px;
    right: 251px;
  }
}

.p-top-mainvisual__text09 {
  top: 325px;
  right: -92px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text09 {
    top: calc(363 / 1280 * 100vw);
    right: calc(16 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text09 {
    top: 363px;
    right: 16px;
  }
}

.p-top-mainvisual__text10 {
  top: 393px;
  right: 94px;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__text10 {
    top: calc(477 / 1280 * 100vw);
    right: calc(-109 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__text10 {
    top: 477px;
    right: -109px;
  }
}

.p-top-mainvisual__product {
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  width: 208px;
  margin: 0 auto;
  transform: translateX(-11px);
  will-change: transform;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__product {
    top: calc(52 / 1280 * 100vw);
    width: calc(252 / 1280 * 100vw);
    transform: translateX(calc(-11 / 1280 * 100vw));
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__product {
    top: 52px;
    width: 252px;
    transform: translateX(-11px);
  }
}

.p-top-mainvisual__logo {
  position: absolute;
  top: 506px;
  left: 0;
  right: 0;
  width: 313px;
  margin: 0 auto;
  will-change: transform;
}

@media screen and (min-width: 768px) {
  .p-top-mainvisual__logo {
    top: calc(588 / 1280 * 100vw);
    width: calc(456 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mainvisual__logo {
    top: 588px;
    width: 456px;
  }
}

.p-top-mainvisual__logo-img {
  width: 100%;
}

/* concept */
.p-top-concept {
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
}

.p-top-concept__container {
  scroll-margin-top: 60px;
}

@media screen and (min-width: 768px) {
  .p-top-concept__container {
    scroll-margin-top: 62px;
  }
}

.p-top-concept__main {
  width: 100%;
}

.p-top-concept__main-img {
  aspect-ratio: 375 / 337;
  object-fit: cover;
  object-position: center;
}

@media screen and (min-width: 768px) {
  .p-top-concept__main-img {
    aspect-ratio: 1280 / 600;
  }
}

.p-top-concept__inner {
  position: relative;
  margin: 0 auto;
  padding-right: 30px;
  padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-concept__inner {
    max-width: 1080px;
    padding-right: 50px;
    padding-left: 50px;
  }
}

@media screen and (min-width: 768px) {
  .p-top-concept__content {
    display: flex;
    align-items: center;
    gap: calc(66 / 1280 * 100vw);
    margin-left: calc(72 / 1280 * 100vw);
    padding-top: 90px;
    padding-bottom: 90px;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-concept__content {
    gap: 66px;
    margin-left: 72px;
  }
}

.p-top-concept__text {
  margin-left: 50px;
  padding-top: 70px;
  padding-bottom: 50px;
  color: var(--color-white);
}

@media screen and (min-width: 768px) {
  .p-top-concept__text {
    width: calc(408 / 1280 * 100vw);
    margin-left: 0;
    padding-top: 0;
    padding-bottom: 0;
    flex-grow: 1;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-concept__text {
    width: 408px;
  }
}

.p-top-concept__img {
  overflow: hidden;
  margin: 0 calc(50% - 50vw);
}

@media screen and (min-width: 768px) {
  .p-top-concept__img {
    width: calc(434 / 1280 * 100vw);
    margin: 0;
    flex-shrink: 0;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-concept__img {
    width: 434px;
  }
}

/*-------- products --------*/
.p-top-products {
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
}

.p-top-products__inner {
  position: relative;
  margin: 0 auto;
  padding-right: 30px;
  padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-products__inner {
    max-width: 1080px;
    padding-right: 50px;
    padding-left: 50px;
  }
}

.p-top-products__container {
  scroll-margin-top: 60px;
}

@media screen and (min-width: 768px) {
  .p-top-products__container {
    scroll-margin-top: 62px;
  }
}

.p-top-products__content {
  padding-top: 60px;
  padding-bottom: 70px;
}

@media screen and (min-width: 768px) {
  .p-top-products__content {
    margin-left: calc(72 / 1280 * 100vw);
     padding-bottom: 60px;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-products__content {
    margin-left: 72px;
  }
}

.p-top-products__splide .splide__pagination {
  position: static;
  margin-top: 23px;
}


@media screen and (min-width: 768px) {
  .p-top-products__splide .splide__pagination {
    margin-top: 30px;
  }
}

.p-top-products__splide .splide__pagination__page {
  width: 10px;
  height: 10px;
  margin: 3px 5px;
  opacity: 1;
  background-color: var(--color-white);
}


.p-top-products__splide .splide__pagination__page.is-active {
  transform: scale(1);
  background-color: var(--color-key2);
}

/* story */
.p-top-story {
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
}

.p-top-story__inner {
  position: relative;
  margin: 0 auto;
  padding-right: 30px;
  padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-story__inner {
    max-width: 1080px;
    padding-right: 50px;
    padding-left: 50px;
  }
}

.p-top-story__container {
  scroll-margin-top: 60px;
}

@media screen and (min-width: 768px) {
  .p-top-story__container {
    scroll-margin-top: 62px;
  }
}

@media screen and (min-width: 768px) {
  .p-top-story__content {
    display: flex;
    align-items: center;
    gap: calc(66 / 1280 * 100vw);
    margin-left: calc(72 / 1280 * 100vw);
    padding-top: 90px;
    padding-bottom: 90px;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-story__content {
    gap: 66px;
    margin-left: 72px;
  }
}

@media screen and (min-width: 768px) {
  .p-top-story__content--reverse-pc {
    flex-direction: row-reverse;
  }
}

.p-top-story__text {
  margin-left: 50px;
  padding-top: 70px;
  padding-bottom: 50px;
  color: var(--color-white);
}

@media screen and (min-width: 768px) {
  .p-top-story__text {
    width: calc(408 / 1280 * 100vw);
    margin-left: 0;
    padding-top: 0;
    padding-bottom: 0;
    flex-grow: 1;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-story__text {
    width: 408px;
  }
}

.p-top-story__img {
  overflow: hidden;
  margin: 0 calc(50% - 50vw);
}

@media screen and (min-width: 768px) {
  .p-top-story__img {
    width: calc(434 / 1280 * 100vw);
    margin: 0;
    flex-shrink: 0;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-story__img {
    width: 434px;
  }
}

/* mission */
.p-top-mission {
  width: 100%;
  padding-top: 0;
  padding-bottom: 80px;
}

@media screen and (min-width: 768px) {
  .p-top-mission {
    padding-bottom: 0;
  }
}

.p-top-mission__inner {
  position: relative;
  margin: 0 auto;
  padding-right: 30px;
  padding-bottom: 0;
  padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-mission__inner {
    max-width: 1080px;
    padding-right: 50px;
    padding-left: 50px;
  }
}

.p-top-mission__container {
  scroll-margin-top: 60px;
}

@media screen and (min-width: 768px) {
  .p-top-mission__container {
    scroll-margin-top: 62px;
  }
}

@media screen and (min-width: 768px) {
  .p-top-mission__content {
    display: flex;
    align-items: center;
    gap: calc(66 / 1280 * 100vw);
    margin-left: calc(72 / 1280 * 100vw);
    /* padding-top: 90px; */
    padding-bottom: 120px;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mission__content {
    gap: 66px;
    margin-left: 72px;
  }
}

.p-top-mission__text {
  margin-left: 50px;
  padding-top: 70px;
  padding-bottom: 50px;
  color: var(--color-white);
}

@media screen and (min-width: 768px) {
  .p-top-mission__text {
    width: calc(408 / 1280 * 100vw);
    margin-left: 0;
    padding-top: 0;
    padding-bottom: 0;
    flex-grow: 1;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mission__text {
    width: 408px;
  }
}

.p-top-mission__img {
  overflow: hidden;
  margin: 0 calc(50% - 50vw);
}

@media screen and (min-width: 768px) {
  .p-top-mission__img {
    width: calc(434 / 1280 * 100vw);
    margin: 0;
    flex-shrink: 0;
  }
}

@media screen and (min-width: 1280px) {
  .p-top-mission__img {
    width: 434px;
  }
}

/* join */
.p-top-join {
  width: 100%;
  padding-top: 0;
  padding-bottom: 70px;
  scroll-margin-top: 90px;
}

@media screen and (min-width: 768px) {
  .p-top-join {
    scroll-margin-top: 112px;
  }
}

@media screen and (min-width: 768px) {
  .p-top-join {
    padding-bottom: 80px;
  }
}

.p-top-join__inner {
  position: relative;
  padding-right: 30px;
  padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-join__inner {
    max-width: 1080px;
    margin: 0 auto;
    padding-right: 50px;
    padding-left: 50px;
  }
}

.p-top-join__img {
  position: relative;
  display: block;
  width: 150px;
  margin: 0 auto 10px;
  transform: translateY(-20px);
}

@media screen and (min-width: 768px) {
  .p-top-join__img {
    width: 220px;
    transform: translateY(-40px);
    margin-bottom: -20px;
  }
}

.p-top-join__title {
  margin-bottom: 20px;
  color : var(--color-text);
  font-size: 3.2rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
}

@media screen and (min-width: 768px) {
  .p-top-join__title {
    margin-bottom: 40px;
    font-size: 3.8rem;
  }
}

.p-top-join__text {
  margin-bottom: 60px;
 text-align: left;
}

@media screen and (min-width: 768px) {
  .p-top-join__text {
    margin-bottom: 35px;
    text-align: center;
  }
}

.p-top-join__sns {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin-bottom: 30px;
}

.p-top-join__sns-link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 55px;
  height: 55px;
  background-color: var(--color-white);
  border-radius: 50%;
  box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
  transition: 0.3s ease-in;
}

.p-top-join__sns-link:hover {
  opacity: 1;
}

@media (hover: hover) {
  .p-top-join__sns-link:hover {
    opacity: 0.7;
  }
}

.p-top-join__sns-img {
  width: 30px;
}

.p-top-join__official {
  display: block;
  width: 55px;
  margin: 0 auto;
  transition: 0.3s ease-in;
}

.p-top-join__official:hover {
  opacity: 1;
}

@media (hover: hover) {
  .p-top-join__official:hover {
    opacity: 0.7;
  }
}

/*-------- products --------*/
.p-products {
  padding-top: 40px;
  padding-bottom: 70px;
}

@media screen and (min-width: 768px) {
  .p-products {
    padding-top: 60px;
    padding-bottom: 100px;
  }
}

.p-products__inner {
  position: relative;
  margin: 0 auto;
  padding-right: 30px;
  padding-left: 30px;
}

@media screen and (min-width: 768px) {
  .p-products__inner {
    max-width: 1080px;
    padding-right: 50px;
    padding-left: 50px;
  }
}



.p-products__title {
  margin-bottom: 40px;
  font-size: 3.2rem;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@media screen and (min-width: 768px) {
  .p-products__title {
    margin-bottom: 30px;
    font-size: 3.8rem;
  }
}

.p-products__list {
  display: grid;
  gap: 40px;
}

@media screen and (min-width: 768px) {
  .p-products__list {
    grid-template-columns: repeat(3, 1fr);
    gap: calc(50 / 1280 * 100vw);
  }
}

@media screen and (min-width: 1280px) {
  .p-products__list {
    gap: 55px;
  }
}

.p-products__item {
  position: relative;
}
/*-------- utility --------*/
.u-bg-blue {
  background-color: var(--color-text);
}

.u-bg-blue1 {
  background-color: var(--color-blue1);
}

.u-bg-key3 {
  background-color: var(--color-key3);
}

.u-pc-only {
  display: none;
}

@media screen and (min-width: 768px) {
  .u-pc-only {
    display: block;
  }
}

.u-sp-only {
  display: block;
}

@media screen and (min-width: 768px) {
  .u-sp-only {
    display: none;
  }
}

.js-scale-long-animation {
  will-change: opacity, transform;
}

.js-scale-short-animation {
  will-change: opacity, transform;
}

.js-fade-animation {
  will-change: opacity;
}