@charset "UTF-8";

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

  /* color */
  --white: #fff;
  --primary: #082c60;
  --color-text-primary: #000;
  --form-form-input: #f0f3f7;
  --form-form-required: #b61024;
  --form-form-optional: #575757;
  --form-form-border: #b7b7b7;
  --form-form-input-placeholder: #bababa;
  --unnamed: #3c6baf;
  --bg: #f1f1f1;
  --bg2: #f0f9fe;

  /* 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;
  --serif: 'Shippori Mincho', serif;
  --title: 'Jost', sans-serif;
  --oswald: 'Oswald', sans-serif;
  --outfit: 'Outfit', 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-tel: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="18" viewBox="0 0 17 18" fill="none"><path d="M3.98535 6.24414C3.9304 6.29992 3.87365 6.3628 3.81934 6.43164C3.58275 6.73167 3.32049 7.24819 3.56055 7.83691L3.61523 7.95508C3.85622 8.42138 4.52539 9.30059 5.09375 10.0195C5.38588 10.3891 5.6649 10.7318 5.87012 10.9824L6.18457 11.3643C6.19228 11.3735 6.1981 11.3809 6.20215 11.3857C6.20416 11.3882 6.20598 11.3903 6.20703 11.3916L6.20898 11.3936L6.22852 11.417L6.25098 11.4385H6.25195L6.25781 11.4443C6.26235 11.4486 6.26962 11.4548 6.27832 11.4629C6.29585 11.4792 6.32156 11.5037 6.35449 11.5342C6.42027 11.595 6.51501 11.6821 6.63086 11.7881C6.86298 12.0005 7.1814 12.289 7.52441 12.5918C8.1905 13.1799 9.0096 13.8773 9.45312 14.1348H9.4541C9.75237 14.3076 10.0602 14.3347 10.3389 14.2637C10.601 14.1968 10.8128 14.0504 10.9658 13.915C11.0171 13.8697 11.0639 13.8224 11.1074 13.7764L14.2715 16.5596C13.9962 16.8044 13.7867 16.9939 13.5918 17.1465C13.3661 17.3231 13.202 17.4162 13.0459 17.4619C12.7409 17.5512 12.3176 17.5068 11.2793 17.0938C9.24661 16.2843 7.38255 15.4589 4.93555 12.8682C2.48559 10.2743 1.65358 8.24266 0.887695 6.08594C0.498393 4.98904 0.447024 4.51621 0.539062 4.16406C0.585329 3.98727 0.677119 3.80801 0.84375 3.56934C0.980095 3.37407 1.1468 3.16414 1.35938 2.89648L3.98535 6.24414ZM12.0947 12.4785C12.1845 12.4424 12.3302 12.4158 12.584 12.5889C13.456 13.1831 14.5153 14.0781 15.0938 14.6963L15.3105 14.9424C15.394 15.046 15.4139 15.1978 15.3564 15.3213L15.3555 15.3223C15.3417 15.352 15.3252 15.3846 15.3057 15.4199L12.0117 12.5225C12.0397 12.5047 12.0672 12.4896 12.0947 12.4785ZM9.46289 0.500977V0.501953C11.1304 0.870088 12.722 1.73849 14.0205 3.11328C15.3194 4.48854 16.1462 6.1803 16.4971 7.96191C16.5061 8.0078 16.4934 8.04733 16.4736 8.07324C16.4546 8.0982 16.4366 8.10254 16.4238 8.10254C16.4058 8.10234 16.364 8.08603 16.3525 8.02734L16.2832 7.70312C15.9092 6.08798 15.127 4.55361 13.9326 3.28906C12.6582 1.93977 11.087 1.08109 9.43457 0.716797H9.43555C9.42737 0.714984 9.41349 0.708973 9.39941 0.69043C9.38502 0.671469 9.37402 0.642938 9.37402 0.609375C9.37411 0.563752 9.39347 0.533416 9.41309 0.516602C9.43196 0.500475 9.44788 0.497657 9.46289 0.500977ZM9.46191 3.31348V3.3125C10.4603 3.62829 11.4038 4.20388 12.1963 5.04297C12.9894 5.88264 13.538 6.88733 13.8389 7.95703C13.8508 7.99973 13.8408 8.03951 13.8203 8.06836C13.8103 8.08248 13.8003 8.09081 13.791 8.0957L13.7666 8.10254C13.7516 8.10229 13.7134 8.08996 13.6973 8.0332C13.4074 7.00509 12.8786 6.0342 12.1094 5.21973C11.4356 4.50635 10.6451 3.98477 9.7998 3.65723L9.43359 3.5293L9.39746 3.5C9.38478 3.48275 9.37402 3.45749 9.37402 3.42285C9.37402 3.37357 9.39593 3.341 9.41699 3.32422C9.42716 3.31618 9.43577 3.31275 9.44141 3.31152C9.44595 3.31059 9.4525 3.31051 9.46191 3.31348ZM2.56055 1.70312C2.64786 1.6576 2.75811 1.6661 2.84766 1.74609V1.74707C3.41664 2.26353 4.42936 3.5792 5.07227 4.63672L5.07715 4.64453C5.24166 4.91977 5.2243 5.09891 5.18066 5.2207C5.17595 5.23385 5.16791 5.24572 5.16211 5.25879L2.43164 1.78027C2.47966 1.7485 2.52211 1.72253 2.55957 1.70312H2.56055Z" fill="currentColor" stroke="currentColor"/></svg>');
  --icon-plus: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.9729 11.0268V0H11.6757V11.0268H0V12.3241H11.6757V24H12.9729V12.3241H24V11.0268H12.9729Z" 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-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>');

  /* 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: 100px;
}

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