@charset "UTF-8";

/* ========== CSS RESET ========== */
/* Box sizing を border-box に統一 */
*, *::before, *::after,body,main,div,section,h1,h2,h3,h4,h5,h6 {
  box-sizing: border-box;
}

/* デフォルトのマージン・パディングを削除 */
body, h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote, dl, dd {
  margin: 0;
  padding: 0;
}

/* リストのスタイルをリセット */
ul, ol {
  list-style: none;
}

/* リンクのスタイルをリセット */
a {
  text-decoration: none;
  color: inherit;
}

/* 画像などの表示崩れ防止 */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* フォーム系のフォント・サイズを継承させる */
input, button, textarea, select {
  font: inherit;
  color: inherit;
}

/* デフォルトのアニメーションを無効化 */
html:focus-within {
  scroll-behavior: smooth;
}

/* iOSのタップ時のハイライトを無効化 */
a, button {
  -webkit-tap-highlight-color: transparent;
}

/* テキスト折り返し防止・調整 */
body {
  word-break: normal;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ========== BASE STYLES ========== */

html, body {
  height: 100%;
  font-family: 'Jost','Noto Sans JP', sans-serif;
  line-height: 1.6;
  background-color: #fff;
  color: var(--color-black);
  font-size: var(--font-16);
  font-weight: 400;
}

div {
  font-family: 'Jost','Noto Sans JP', sans-serif;
  font-size: var(--font-16);
  font-weight: 400;
}

/* ボタンの基本スタイル */
button {
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

/* スクロールバー（必要に応じて） */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 4px;
}


/* ========== root ========== */


:root {
  --font-header:clamp(18px, calc(18px + (8 * (100vw - 375px) / 1025)), 26px);
  --font-footer:clamp(21px, calc(21px + (9 * (100vw - 375px) / 1025)), 26px);

  --font-mv-44: clamp(14px, calc(14px + (22 * (100vw - 375px) / 1025)), 36px);
  --font-mv-36: clamp(12px, calc(12px + (24 * (100vw - 375px) / 1025)), 36px);
  --font-mv-30: clamp(16px, calc(16px + (14 * (100vw - 375px) / 1025)), 30px);
  --font-mv-sub: clamp(20px, calc(20px + (16 * (100vw - 375px) / 1025)), 36px);

  --font-36: clamp(25px, calc(25px + (11 * (100vw - 375px) / 650)), 36px);
  --font-30: clamp(24px, calc(24px + (6 * (100vw - 375px) / 425)), 30px);
  --font-27: clamp(25px, calc(25px + (2 * (100vw - 500px) / 900)), 27px);
  --font-24: 24px;
  --font-18: clamp(16px, calc(16px + (2 * (100vw - 375px) / 425)), 18px);
  --font-16: 16px;
  --font-14: 14px;
  --font-12: 12px;

  --color-primary:#20AEE5;
  --color-secondary:#21618B;

  --color-white:#fff;
  --color-white-50:rgba(255, 255, 255, 0.5);
  --color-blue:#20AEE5;
  --color-blue2:#E1F2F7;
  --color-black:#28333A;
  --color-black-50: rgba(40, 51, 58, 0.5);
  --color-black-40: rgba(40, 51, 58, 0.4);
  --color-black2:#21618B;
  --color-gray:#F3F3F5;
  --color-gray2:#E1E1E5;
  --color-gray3:#8E8E92;

  --color-link:#20AEE5;

  --margin-xl:clamp(20px, calc(20px + (50 * (100vw - 375px) / 650)), 70px);
  --margin-l:clamp(18px, calc(18px + (32 * (100vw - 375px) / 1025)), 50px);
  --margin-m:clamp(16px, calc(16px + (14 * (100vw - 375px) / 1025)), 30px);
  --margin-s:clamp(8px, calc(8px + (4 * (100vw - 375px) / 1025)), 12px);

  --margin-footer:clamp(70px, calc(70px + (50 * (100vw - 375px) / 1025)), 120px);
    }

  .font-12 {font-size:var(--font-12);}
  .font-16 {font-size: var(--font-16);}
  .font-24 {font-size: var(--font-24);}
  .font-30 {font-size: var(--font-30) !important;}
  .font-36 {font-size: var(--font-36);}
  .font-44 {font-size: clamp(10px, calc(10px + (34 * (100vw - 375px) / 1025)), 44px);}
  .font-60 {font-size: clamp(20px, calc(20px + (40 * (100vw - 375px) / 1025)), 60px);}
  .font-80 {font-size: clamp(30px, calc(30px + (50 * (100vw - 375px) / 1025)), 80px);}
  
  .font-400 {font-weight: 400;}
  .font-500 {font-weight: 500;}
  .font-700 {font-weight: 700;}

  .font-mv-30{font-size: var(--font-mv-30);}
  .font-mv-36{font-size: var(--font-mv-36);}
  .font-mv-44{font-size: var(--font-mv-44);}

  .color-primary{color:var(--color-blue);}
  .color-secondary{color:var(--color-black2);}
  .color-black{color:var(--color-black);}
  .color-blue{color:var(--color-blue);}
  .color-gray2{color:var(--color-gray2);}
  .color-gray3{color:var(--color-gray3);}

  .font-header {font-size: var(--font-header);}
  .font-footer {font-size:var(--font-footer);}

  .margin-xl{ margin:var(--margin-xl) auto 0 !important;}
  .margin-l{ margin:var(--margin-l) auto 0 !important;}
  .margin-m{ margin:var(--margin-m) auto 0 !important;}
  .margin-s{ margin:var(--margin-s) auto 0 !important;}
  .margin-footer{ margin:var(--margin-footer) auto 0 ;}
  .margin-auto{ margin:0 auto;}



  .max-1500{ max-width: 1500px; padding: 0 15px;}
  .max-1250{ max-width: 1250px; padding: 0 15px;}
  .max-1000{ max-width: 1000px; padding: 0; }

  a:hover{
    text-decoration: none;
  }

  p {font-size: var(--font-16); line-height: 1.6;}


  .text-center {text-align: center;}
  .text-right {text-align: right;}












  body.no-scroll{
    /*スクロール無効*/
    overflow: hidden;
    height: 100vh;
  }

  .flex {display: flex;}
  .flex-r-c {display: flex;}
  .flex-c-c {display: flex; flex-direction: column;}


  .j-s {justify-content: start;}
  .j-c {justify-content: center;}
  .j-e {justify-content: end;}
  .j-sb {justify-content: space-between;}
  .j-s-s {justify-self:start;}
  .j-s-c {justify-self: center;}
  .j-s-e {justify-self: end;}

  .a-c {align-items: center !important;}

  .border {border-bottom: 1px dashed var(--color-gray3);}
  .br-sp {display: none;}
  .br-pc {display: block;}


/* ------------------------------
  グローバル
--------------------------------*/

html {
  scroll-behavior: smooth;
}

  main {
    max-width: 100%;
    margin: 0 auto;
    padding: 0px;
    background-color: #fff;
  }


nav a {
    color: var(--color-black);
    text-decoration: none;
    display: block;
}

hr {
  border: none;
  height: 2px;
  background-color: var(--color-gray2); /* 好きな色に変更 */
}

h1 {font-size:var(--font-36);}
h2 {
    font-size: clamp(18px, calc(18px + (12 * (100vw - 375px) / 425)), 30px);
    margin-bottom: 15px;
    color: var(--color-blue);
  }


  h1 a{
  color:var(--color-black);
  }








  h3 {
    font-size: var(--font-18);
    margin-top: 20px;
    font-weight: 500;
    margin-bottom: 10px;
  }

  ul { 
    margin:0;
    padding:0;
  }

  li{
    font-size: var(--font-16);
    list-style: none;
  }

  .custom-ul li {
    list-style: none;
    display: flex;
    align-items: flex-start;
    position: relative;
    padding-left: 1.3em;
  }

  .custom-ul li::before {
    content: "・";
    position: absolute;
    left: 0;
    line-height: 1.6;
  }

  .custom-ul2 li {
    list-style: none;
    display: flex;
    align-items: flex-start;
    position: relative;
  }


  a {
    color: var(--color-link);
    text-decoration: none;
    transition: opacity .3s ease;
  }



 @media screen and (max-width: 1200px) {


  .max-1000 {padding: 0 15px;}

 }


  @media screen and (max-width: 768px) {
    :root {
  --font-24: 20px;
  --font-16: 14px;
  --font-14: 12px;
  }
  
  .flex-r-c {flex-direction: column;}

    main{
  box-sizing: border-box;
  }

   .br-sp {display: block;}
   .br-pc {display: none;}
}



@media print {
  * {
    box-sizing: border-box;
  }

  body {
    font-size: 12pt;
    color: #000;
    background: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  header,
  nav,
  footer,
  .menu-toggle,
  .no-print {
    display: none !important;
  }

  img {
    max-width: 100%;
    height: auto;
  }

  .container,
  .wrapper {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .flex,
  .grid {
    display: block !important;
  }
}
