@charset "UTF-8";

/* =====================
  Custom Property
===================== */
:root {
  --debug: false;

  /* color */
  --white: #fff;
  --primary: #3e8b38;
  --color-text-primary: #000;
  --bg-green: #549b54;
  --bg-light-green: #f4f8f9;
  --bg-key-green: #96ce92;
  --form-input: #f0f3f7;
  --form-required: #b61024;
  --form-optional: #575757;
  --form-border: #b7b7b7;
  --form-input-placeholder: #bababa;

  /* font */
  --yumin: 'Yu Mincho Demibold', 'YuMincho Demibold', '游明朝', 'Yu Mincho Regular', 'Yu Mincho', 'YuMincho Medium', serif;
  --yugo: '游ゴシック', 'Yu Gothic', yugothic, 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'メイリオ', meiryo, 'ＭＳ ゴシック', sans-serif;
  --sanserif: 'Noto Sans JP', sans-serif;
  --title: 'Jost', sans-serif;
  --mincho: 'Shippori Mincho', serif;

  /* icon */
  --icon-arrow: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="7" viewBox="0 0 24 7" fill="none"><path d="M16 7V0L24 7H16Z" fill="currentColor"/><rect y="6" width="16" height="1" fill="currentColor"/></svg>');
  --icon-download: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none"><path d="M14.25 8.90625V13.6562C14.25 13.8137 14.1874 13.9647 14.0761 14.0761C13.9647 14.1874 13.8137 14.25 13.6562 14.25H0.59375C0.436278 14.25 0.285255 14.1874 0.173905 14.0761C0.0625557 13.9647 0 13.8137 0 13.6562V8.90625C0 8.74878 0.0625557 8.59775 0.173905 8.4864C0.285255 8.37506 0.436278 8.3125 0.59375 8.3125C0.751222 8.3125 0.902245 8.37506 1.01359 8.4864C1.12494 8.59775 1.1875 8.74878 1.1875 8.90625V13.0625H13.0625V8.90625C13.0625 8.74878 13.1251 8.59775 13.2364 8.4864C13.3478 8.37506 13.4988 8.3125 13.6562 8.3125C13.8137 8.3125 13.9647 8.37506 14.0761 8.4864C14.1874 8.59775 14.25 8.74878 14.25 8.90625ZM6.70492 9.32633C6.76007 9.38153 6.82555 9.42533 6.89763 9.45521C6.96971 9.48509 7.04697 9.50047 7.125 9.50047C7.20303 9.50047 7.28029 9.48509 7.35237 9.45521C7.42445 9.42533 7.48993 9.38153 7.54508 9.32633L10.5138 6.35758C10.569 6.30241 10.6128 6.23692 10.6426 6.16484C10.6725 6.09277 10.6878 6.01552 10.6878 5.9375C10.6878 5.85948 10.6725 5.78223 10.6426 5.71016C10.6128 5.63808 10.569 5.57259 10.5138 5.51742C10.4587 5.46226 10.3932 5.4185 10.3211 5.38864C10.249 5.35879 10.1718 5.34342 10.0938 5.34342C10.0157 5.34342 9.93848 5.35879 9.86641 5.38864C9.79433 5.4185 9.72884 5.46226 9.67367 5.51742L7.71875 7.47309V0.59375C7.71875 0.436278 7.65619 0.285255 7.54485 0.173905C7.4335 0.0625556 7.28247 0 7.125 0C6.96753 0 6.8165 0.0625556 6.70516 0.173905C6.59381 0.285255 6.53125 0.436278 6.53125 0.59375V7.47309L4.57633 5.51742C4.46492 5.40601 4.31381 5.34342 4.15625 5.34342C3.99869 5.34342 3.84758 5.40601 3.73617 5.51742C3.62476 5.62883 3.56217 5.77994 3.56217 5.9375C3.56217 6.09506 3.62476 6.24617 3.73617 6.35758L6.70492 9.32633Z" fill="currentColor"/></svg>');
  --icon-mail: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14" fill="none"><path d="M2.89286 0C2.12562 0 1.38981 0.301704 0.847298 0.83874C0.304782 1.37578 0 2.10415 0 2.86364V11.1364C0 11.8958 0.304782 12.6242 0.847298 13.1613C1.38981 13.6983 2.12562 14 2.89286 14H15.1071C15.8744 14 16.6102 13.6983 17.1527 13.1613C17.6952 12.6242 18 11.8958 18 11.1364V2.86364C18 2.10415 17.6952 1.37578 17.1527 0.83874C16.6102 0.301704 15.8744 0 15.1071 0H2.89286ZM16.7143 3.43827L9 7.54982L1.28571 3.43827V2.86364C1.28571 2.4417 1.45504 2.03705 1.75644 1.73869C2.05783 1.44034 2.46662 1.27273 2.89286 1.27273H15.1071C15.5334 1.27273 15.9422 1.44034 16.2436 1.73869C16.545 2.03705 16.7143 2.4417 16.7143 2.86364V3.43827ZM1.28571 4.88345L8.69529 8.83336C8.78894 8.88327 8.89364 8.90939 9 8.90939C9.10636 8.90939 9.21106 8.88327 9.30472 8.83336L16.7143 4.88345V11.1364C16.7143 11.5583 16.545 11.963 16.2436 12.2613C15.9422 12.5597 15.5334 12.7273 15.1071 12.7273H2.89286C2.46662 12.7273 2.05783 12.5597 1.75644 12.2613C1.45504 11.963 1.28571 11.5583 1.28571 11.1364V4.88345Z" fill="currentColor"/></svg>');
  --icon-bracket: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="9" viewBox="0 0 14 9" fill="none"><path d="M6.70703 8.12109L-6.18106e-08 1.41406L1.41406 -5.24537e-07L6.70703 5.29297L12 -6.18106e-08L13.4141 1.41406L6.70703 8.12109Z" fill="currentColor"/></svg>');
  --icon-home: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="13" height="12" viewBox="0 0 13 12" fill="none"><path d="M12.7309 5.90169L6.82435 0.131418C6.78182 0.0897586 6.73131 0.056708 6.6757 0.0341577C6.62009 0.0116074 6.56047 0 6.50027 0C6.44006 0 6.38045 0.0116074 6.32484 0.0341577C6.26923 0.056708 6.21872 0.0897586 6.17619 0.131418L0.26959 5.90169C0.0975112 6.06991 0 6.29843 0 6.53675C0 7.03163 0.411555 7.43397 0.917752 7.43397H1.5401V11.5514C1.5401 11.7995 1.74516 12 1.99898 12H5.58252V8.85972H7.18858V12H11.0016C11.2554 12 11.4604 11.7995 11.4604 11.5514V7.43397H12.0828C12.3266 7.43397 12.5603 7.34005 12.7324 7.17041C13.0894 6.81994 13.0894 6.25216 12.7309 5.90169Z" fill="currentColor"/></svg>');
  --icon-breadcrumb: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" fill="none"><path d="M0 5.4V4.44L2.832 3.396L4.632 2.724V2.676L2.832 2.004L0 0.948V0L5.76 2.268V3.132L0 5.4Z" fill="currentColor"/></svg>');
  --icon-blank: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13" fill="none"><path d="M13 10.1211H10.0947V13H0V2.87891H2.90527V0H13V10.1211ZM1.2041 4.15234V11.7139H8.90234V10.1211H2.90527V4.15234H1.2041ZM4.09766 8.84766L4.10938 8.83496H11.8076V1.28711H4.09766V8.84766Z" fill="currentColor"/></svg>');
  --icon-more: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="11" viewBox="0 0 17 11" fill="none"><path d="M8.5 7.00051L15.1114 -1.74224e-06L17 1.99974L8.5 11L1.12052e-06 1.99974L1.88859 -5.86268e-07L8.5 7.00051Z" fill="currentColor"/></svg>');

  /* ease */
  --slideInBezier: cubic-bezier(0.16, 0.5, 0.43, 1);
  --easeOutQuart: cubic-bezier(0.25, 1, 0.5, 1);
  --easeOutExpo: cubic-bezier(0.87, 0, 0.13, 1);
  --easeOutBack: cubic-bezier(0.34, 1.56, 0.64, 1);
  --easeOutQuint: cubic-bezier(0.22, 1, 0.36, 1);
  --easeInCirc: cubic-bezier(0.55, 0, 1, 0.45);
  --easeInOutBack: cubic-bezier(0.68, -0.6, 0.32, 1.6);
  --easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
  --easeOutBounce: cubic-bezier(0.68, -0.55, 0.27, 1.55);

  /* ==== project ==== */
}

@media (width <=768px) {
  :root {
    --header-height: calc((100 / 390) * 50 * 1vw);
  }
}

/* =====================
  nudge
===================== */
:root {
  --nudge-1: 8px;
  --nudge-2: 16px;
  --nudge-3: 24px;
  --nudge-4: 32px;
  --nudge-5: 40px;
  --nudge-6: 48px;
  --nudge-7: 56px;
  --nudge-8: 64px;
  --nudge-9: 70px;
  --nudge-10: 80px;
}

@media (width <=768px) {
  :root {
    --nudge-1: calc((100 / 390) * 8 * 1vw);
    --nudge-2: calc((100 / 390) * 16 * 1vw);
    --nudge-3: calc((100 / 390) * 24 * 1vw);
    --nudge-4: calc((100 / 390) * 32 * 1vw);
    --nudge-5: calc((100 / 390) * 40 * 1vw);
    --nudge-6: calc((100 / 390) * 48 * 1vw);
    --nudge-7: calc((100 / 390) * 56 * 1vw);
    --nudge-8: calc((100 / 390) * 64 * 1vw);
    --nudge-9: calc((100 / 390) * 70 * 1vw);
    --nudge-10: calc((100 / 390) * 80 * 1vw);
  }
}

@container style(--debug:true) {
  * {
    outline: 1px solid tomato;

    &::before,
    &::after {
      outline: 1px solid tomato;
    }

    &:focus {
      outline: 2px solid var(--blue);
      outline-offset: 2px;
    }
  }
}

@layer style {
  :where(html, body) {
    font-family: var(--sanserif);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    color: var(--color-text-primary);

    @media (width <=768px) {
      font-size: calc((100 / 390) * 16 * 1vw);
    }
  }

  body {
    @media (width > 768px) {
      min-inline-size: 1440px;
    }
  }

  @media (width > 768px) {
    .sp {
      display: none;
    }
  }

  @media (width <=768px) {
    .pc {
      display: none;
    }
  }

  /* p */
  :where(p, li, dt, dd, th, td) {
    font-weight: 400;
    line-height: 1.8;
  }

  .main {
    position: relative;
    margin-block-start: calc(var(--header-height) * -1);

    &:has(.u-decoration) {
      overflow: clip;
    }
  }

  @supports not (view-transition-name: none) {
    body:not([data-page='top'], [data-page='contact'], [data-page='entry'])::after {
      position: fixed;
      top: 0;
      left: 0;
      z-index: 900;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100dvh;
      pointer-events: none;
      content: '';
      background: #fff;
      opacity: 1;
      transition: all 600ms ease-in-out 100ms;
    }

    .pageshow body::before {
      opacity: 0;
    }

    .pageshow body::after {
      opacity: 0;
    }
  }

  @supports (view-transition-name: none) {
    @view-transition {
      navigation: auto;
    }

    ::view-transition-old(root),
    ::view-transition-new(root) {
      animation-duration: 0.4s;
      animation-timing-function: ease-in-out;
    }

    ::view-transition-old(root) {
      animation: slide-out 0.4s ease-in-out;
    }

    ::view-transition-new(root) {
      animation: slide-in 0.4s ease-in-out;
    }

    @keyframes slide-out {
      to {
        opacity: 0;
      }
    }

    @keyframes slide-in {
      from {
        opacity: 0;
      }

      to {
        opacity: 1;
      }
    }
  }
}
