@charset "UTF-8";

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

  /* color */
  --white: #fff;
  --primary: #00529f;
  --color-text-primary: #3c3c3c;
  --text_gray: #989898;
  --gray_road: #d9d9d9;
  --lightblue: #e7f4fa;
  --form-form-input: #f0f3f7;
  --form-form-required: #b61024;
  --form-form-optional: #575757;
  --form-form-border: #b7b7b7;
  --form-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: 'Zen Kaku Gothic New', sans-serif;
  --noto: 'Noto Sans JP', serif;
  --title: 'Questrial', sans-serif;

  /* icon */
  --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-head: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="13" height="10" viewBox="0 0 13 10" fill="none"><path d="M5.26182 0.426192C5.65992 -0.142524 6.50218 -0.142526 6.90029 0.426191L11.9796 7.6824C12.4436 8.34517 11.9694 9.25586 11.1604 9.25586H1.00171C0.192687 9.25586 -0.281466 8.34517 0.182478 7.6824L5.26182 0.426192Z" fill="currentColor"/></svg>');
  --icon-arrow: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M7.90476 14L6.85714 12.8125L11.1701 7.85938H0V6.14062H11.1701L6.85714 1.20312L7.90476 0L14 7L7.90476 14Z" fill="currentColor"/></svg>');
  --icon-angle: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="7" viewBox="0 0 10 7" fill="none"><path d="M8.70703 0.707031L4.70703 4.70703L0.707031 0.707031" stroke="currentColor" stroke-width="2"/></svg>');
  --icon-scroll: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="53" viewBox="0 0 10 53" fill="none"><path d="M0.111882 46.2954L9.37988 46.2954L9.37988 47.3454L1.11988 47.3454L1.11988 52.3994L0.111882 52.3994L0.111882 46.2954Z" fill="currentColor"/><path d="M0.111882 38.8306L9.37988 38.8306L9.37988 39.8806L1.11988 39.8806L1.11988 44.9346L0.111882 44.9346L0.111882 38.8306Z" fill="currentColor"/><path d="M-5.74261e-05 32.4464C-5.73955e-05 31.7464 0.121276 31.1071 0.363943 30.5284C0.60661 29.9498 0.947277 29.4504 1.38594 29.0304C1.82461 28.6198 2.32861 28.3024 2.89794 28.0784C3.47661 27.8544 4.09261 27.7424 4.74594 27.7424C5.40861 27.7424 6.02461 27.8544 6.59394 28.0784C7.16328 28.3024 7.66728 28.6198 8.10594 29.0304C8.54461 29.4504 8.88528 29.9498 9.12794 30.5284C9.37061 31.1071 9.49194 31.7464 9.49194 32.4464C9.49194 33.1464 9.37061 33.7858 9.12794 34.3644C8.88528 34.9431 8.54461 35.4378 8.10594 35.8484C7.66728 36.2684 7.16328 36.5904 6.59394 36.8144C6.02461 37.0384 5.40861 37.1504 4.74594 37.1504C4.09261 37.1504 3.47661 37.0384 2.89794 36.8144C2.32861 36.5904 1.82461 36.2684 1.38594 35.8484C0.947276 35.4378 0.606609 34.9431 0.363943 34.3644C0.121276 33.7858 -5.74567e-05 33.1464 -5.74261e-05 32.4464ZM1.02194 32.4464C1.02194 33.2024 1.18528 33.8511 1.51194 34.3924C1.84794 34.9431 2.29594 35.3631 2.85594 35.6524C3.42528 35.9511 4.05528 36.1004 4.74594 36.1004C5.44594 36.1004 6.07594 35.9511 6.63594 35.6524C7.19594 35.3631 7.63928 34.9431 7.96594 34.3924C8.30194 33.8511 8.46994 33.2024 8.46994 32.4464C8.46994 31.6998 8.30194 31.0511 7.96594 30.5004C7.63928 29.9498 7.19594 29.5251 6.63594 29.2264C6.07594 28.9371 5.44594 28.7924 4.74594 28.7924C4.05528 28.7924 3.42528 28.9371 2.85594 29.2264C2.29594 29.5251 1.84794 29.9498 1.51194 30.5004C1.18528 31.0511 1.02194 31.6998 1.02194 32.4464Z" fill="currentColor"/><path d="M0.111882 18.9653L9.37988 18.9653L9.37988 23.4033C9.37988 24.3553 9.11855 25.1113 8.59588 25.6713C8.07322 26.2407 7.36855 26.5253 6.48188 26.5253C5.88455 26.5253 5.40855 26.4087 5.05388 26.1753C4.69922 25.9513 4.42855 25.6667 4.24188 25.3213C4.06455 24.976 3.93388 24.6307 3.84988 24.2853L0.111882 26.7213L0.111882 25.4753L3.66788 23.2353L3.66788 20.0153L0.111882 20.0153L0.111882 18.9653ZM4.66188 20.0153L4.66188 23.2213C4.66188 23.5573 4.71322 23.898 4.81588 24.2433C4.91855 24.5887 5.10055 24.878 5.36188 25.1113C5.63255 25.354 6.00588 25.4753 6.48188 25.4753C7.06988 25.4753 7.53188 25.2747 7.86788 24.8733C8.21322 24.472 8.38588 23.94 8.38588 23.2773L8.38588 20.0153L4.66188 20.0153Z" fill="currentColor"/><path d="M-5.74163e-05 13.1912C-5.73759e-05 12.2672 0.209943 11.4692 0.629943 10.7972C1.05928 10.1252 1.63328 9.60718 2.35194 9.24318C3.07061 8.88851 3.86861 8.71118 4.74594 8.71118C5.62328 8.71118 6.42128 8.88851 7.13994 9.24318C7.85861 9.60718 8.42794 10.1252 8.84794 10.7972C9.27728 11.4692 9.49194 12.2672 9.49194 13.1912C9.49194 13.8912 9.36594 14.5212 9.11394 15.0812C8.87128 15.6412 8.53528 16.1172 8.10594 16.5092C7.67661 16.9012 7.17728 17.1952 6.60794 17.3912L6.60794 16.2852C7.17728 16.0518 7.62994 15.6832 7.96594 15.1792C8.30194 14.6752 8.46994 14.0405 8.46994 13.2752C8.46994 12.5285 8.30194 11.8892 7.96594 11.3572C7.63928 10.8345 7.19594 10.4378 6.63594 10.1672C6.07594 9.89651 5.44594 9.76118 4.74594 9.76118C4.05528 9.76118 3.42528 9.89651 2.85594 10.1672C2.29594 10.4378 1.84794 10.8345 1.51194 11.3572C1.18528 11.8892 1.02194 12.5285 1.02194 13.2752C1.02194 14.0405 1.18994 14.6752 1.52594 15.1792C1.86194 15.6832 2.31461 16.0518 2.88394 16.2852L2.88394 17.3912C2.32394 17.1952 1.82461 16.9012 1.38594 16.5092C0.95661 16.1172 0.615943 15.6412 0.363943 15.0812C0.121276 14.5212 -5.74469e-05 13.8912 -5.74163e-05 13.1912Z" fill="currentColor"/><path d="M-5.73955e-05 4.004C-5.73555e-05 3.08933 0.121276 2.34733 0.363943 1.778C0.615943 1.20867 0.961277 0.779333 1.39994 0.49C1.83861 0.21 2.33328 0.0466663 2.88394 -2.88845e-07L2.88394 1.092C2.43594 1.12 2.07194 1.26933 1.79194 1.54C1.52128 1.81067 1.32061 2.16533 1.18994 2.604C1.05928 3.052 0.993943 3.542 0.993943 4.074C0.993943 4.858 1.12928 5.47867 1.39994 5.936C1.67994 6.39333 2.09061 6.622 2.63194 6.622C2.95861 6.622 3.21994 6.50533 3.41594 6.272C3.62128 6.048 3.78928 5.74467 3.91994 5.362C4.05061 4.98867 4.16728 4.578 4.26994 4.13C4.38194 3.682 4.49861 3.22933 4.61994 2.772C4.74128 2.324 4.89528 1.90867 5.08194 1.526C5.26861 1.15267 5.50661 0.849333 5.79594 0.616C6.09461 0.392 6.47261 0.28 6.92994 0.28C7.68594 0.28 8.30194 0.569333 8.77794 1.148C9.25394 1.736 9.49194 2.60867 9.49194 3.766C9.49194 4.58733 9.36594 5.264 9.11394 5.796C8.87128 6.328 8.54928 6.72467 8.14794 6.986C7.74661 7.25667 7.31261 7.406 6.84594 7.434L6.84594 6.356C7.31261 6.3 7.70461 6.06667 8.02194 5.656C8.34861 5.24533 8.51194 4.61533 8.51194 3.766C8.51194 3.24333 8.46061 2.81867 8.35794 2.492C8.25528 2.16533 8.11994 1.91333 7.95194 1.736C7.79328 1.568 7.62528 1.45133 7.44794 1.386C7.27061 1.33 7.10261 1.302 6.94394 1.302C6.63594 1.302 6.38394 1.414 6.18794 1.638C6.00128 1.87133 5.84261 2.17467 5.71194 2.548C5.59061 2.93067 5.47861 3.35067 5.37594 3.808C5.27328 4.26533 5.15661 4.718 5.02594 5.166C4.90461 5.62333 4.74594 6.03867 4.54994 6.412C4.36328 6.79467 4.12061 7.098 3.82194 7.322C3.52328 7.55533 3.14061 7.672 2.67394 7.672C1.81528 7.672 1.15261 7.34533 0.685943 6.692C0.22861 6.03867 -5.74453e-05 5.14267 -5.73955e-05 4.004Z" fill="currentColor"/></svg>');
  --icon-breadcrumb: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="7" height="12" viewBox="0 0 7 12" fill="none"><path d="M0.81 11.91L0 11.505L5.865 0L6.675 0.42L0.81 11.91Z" 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 ==== */
  --header-height: 80px;
}

@media (width <=768px) {
  :root {
    --header-height: calc((100 / 390) * 72 * 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) * 15 * 1vw);
    }
  }

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

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

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

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

  @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;
      }
    }
  }
}
