@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;
  cursor:pointer;
}

/* 画像などの表示崩れ防止 */
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: "Montserrat",'Noto Sans JP', sans-serif;
  line-height: 2;
  background-color: #fff;
  color: var(--color-black);
  font-size: var(--font-16);
  font-weight: 400;
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden; /* 横スクロールを防止 */
}

div {
  font-family: "Montserrat",'Noto Sans JP', sans-serif;
  font-size: var(--font-16);
  font-weight: 400;
}

/* テーブル基本スタイル */

/* テーブル用ラッパー（スマホで横スクロール対応） */
.table-wrapper {
  width: 100%;
  overflow-x: auto;   /* 横スクロールを有効化 */
  -webkit-overflow-scrolling: touch; /* iOSでスムーズスクロール */
}

.g-table {
  width: 100%;
  border-collapse: collapse;
  border-top:3px solid var(--color-primary);
}


.g-table th,
.g-table td {
  padding: 2rem;
  border: 1px solid var(--color-primary);
  font-size: var(--font-20);
}

.g-table th {
  width: 25%;
  text-align: center;
  font-weight: bold;
  white-space: nowrap;
  color:var(--color-primary);
}

.g-table td {
  width: 50%;
}

.inner-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
  font-size: 0.9em;
}

.inner-table th,
.inner-table td {
  font-size:var(--font-18);
  border: 1px solid var(--color-black-15);
  padding:0.5rem 1rem;
}

.inner-table th {
  background: var(--color-blue3);
  font-weight: bold;
}


/* ボタンの基本スタイル */
.btn {
  max-width:590px;
  width:100%;
  border-radius: 16px;
  text-align: left;

  cursor: pointer;
  background: none;
  border: none;
  font-size:var(--font-26);
  background-color:var(--color-blue2);
  padding: var(--margin-xs);

  color:var(--color-primary);

  padding-left:3rem;
  font-weight:var(--font-700);
  display: flex;
  align-items: center;
  justify-content: space-between;

  position: relative;
  opacity:1;


}

.btn::after {
  content: "";          /* 擬似要素で＞を表示 */
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: auto;
  background: url("../img/icon-arrow.svg") no-repeat center / contain;
}

.btn:hover{
  opacity:0.6;
}

/* ボタンの基本スタイル */
.btn-cv {
  max-width:800px;
  width:100%;
  border-radius: 200px;
  text-align: left;

  cursor: pointer;
  background: none;
  border: none;
  font-size:var(--font-26);
  background-color:var(--color-primary);
  padding: var(--margin-xs);

  color:var(--color-white);

  padding-left:3rem;
  font-weight:var(--font-700);
  display: flex;
  align-items: center;
  justify-content: space-between;

  position: relative;
  opacity:1;


}

.btn-cv::after {
  content: "";          /* 擬似要素で＞を表示 */
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: auto;
  background: url("../img/icon-arrow.svg") no-repeat center / contain;
}

.btn-cv:hover{
  opacity:0.6;
}


/* ボタンの基本スタイル */
.btn-cv2 {
  max-width:800px;
  width:100%;
  border-radius: 200px;
  text-align: left;

  cursor: pointer;
  background: none;
  border: none;
  font-size:var(--font-26);
  background-color:var(--color-primary);
  padding: var(--margin-xs);

  color:var(--color-white);

  font-weight:var(--font-700);
  display: flex;
  align-items: center;
  justify-content: space-between;

  position: relative;
  opacity:1;


}

.btn-cv2:hover{
  opacity:0.6;
}

/* ボタンの基本スタイル */
.btn-no-cv {
  max-width:800px;
  width:100%;
  border-radius: 200px;
  text-align: left;

  background: none;
  border: none;
  font-size:var(--font-26);
  background-color:var(--color-primary);
  padding: var(--margin-xs);

  color:var(--color-white);

  font-weight:var(--font-700);
  display: flex;
  align-items: center;
  justify-content: center;

  position: relative;
  opacity:1;


}

/* 申込ボタンセクション */
.apply-section {
  background-color: var(--color-blue2);
  text-align: center;
  padding: 60px 20px;
  color: var(--color-primary);

}

.apply-text {
  font-size: 1.2rem;
  margin-bottom: 30px;
}


/* 注意事項 */
.coution{
  background-color:var(--color-blue3);
  color:var(--color-primary);
  padding:1.5rem;
}

.coution p{
  font-size:var(--font-16) !important;
}

/* スクロールバー（必要に応じて） */
/* ::-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-logo1: clamp(13px, 1.5vw, 20px);
  --font-logo2: clamp(20px, 3vw, 40px);
  --font-mv1: clamp(12px, 3vw, 26px);
  --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-60: clamp(40px, 4vw, 60px);
  --font-46: clamp(30px, 3.5vw, 46px);
  --font-40: clamp(28px, 3.4vw, 40px);
  --font-36: clamp(25px, calc(25px + (11 * (100vw - 375px) / 650)), 36px);
  --font-32: clamp(20px, 3.3vw, 32px);
  --font-26: clamp(18px, 3vw, 26px);
  --font-24: 24px;
  --font-22: clamp(17px, 3vw, 22px);
  --font-20: clamp(16px, 4vw, 20px);
  --font-18: clamp(15px, 3.8vw, 18px);
  --font-16: clamp(14px, 3.3vw, 16px);
  --font-14: 14px;
  --font-12: 12px;


  --font-500: 500;
  --font-700: 700;

  --color-primary:#2A559F;
  --color-secondary:#D6E5F9;

  --color-white:#fff;
  --color-white-50:rgba(255, 255, 255, 0.5);
  --color-white-80:rgba(255, 255, 255, 0.8);
  
  --color-red:#9F2A2A;
  --color-red2:#d44d4d;
  --color-blue:#2A559F;
  --color-blue2:#D6E5F9;
  --color-blue3:#ECF2F9;
  --color-black:#282E40;
  --color-black-15: rgba(40, 46, 64, 0.15);
  --color-black-50: rgba(40, 46, 64, 0.5);
  --color-black-80: rgba(40, 46, 64, 0.8);

  --color-link:#0066c0;

  --margin-xl:clamp(100px, 14vw, 220px);
  --margin-l:clamp(80px, 13vw, 200px);
  --margin-m:clamp(60px, 9vw, 150px);
  --margin-s:clamp(30px,7vw, 100px);
  --margin-xs:clamp(26px, 2vw, 50px);

  --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-18 {font-size: var(--font-18);}
  .font-20 {font-size: var(--font-20);}
  .font-22 {font-size: var(--font-22);}
  .font-26 {font-size: var(--font-26);}
  .font-32 {font-size: var(--font-32);}
  .font-36 {font-size: var(--font-36);}
  .font-40 {font-size: var(--font-40);}
  .font-46 {font-size: var(--font-46);}
  .font-60 {font-size: var(--font-60);}
  
  .font-400 {font-weight: 400;}
  .font-500 {font-weight: 500;}
  .font-700 {font-weight: 700;}

  .font-logo1 {font-size: var(--font-logo1);}
  .font-logo2 {font-size: var(--font-logo2);}
  .font-mv1 {font-size: var(--font-mv1);}
  .font-mv3 {font-size: var(--font-mv3);}

  .font-header {font-size: var(--font-header);}
  .font-footer {font-size:var(--font-footer);}

  .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);}
  .color-red,.red {color:var(--color-red2);}


  .line-1-2 {line-height:1.2;}

  .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-xs{ margin:var(--margin-xs) auto 0 !important;}
  .margin-footer{ margin:var(--margin-footer) auto 0 ;}
  .margin-auto{ margin:0 auto;}

  .padding-side{ padding:0 clamp(1rem,1.5vw,2rem);}


  .max-1500{ max-width: 1500px;}
  .max-1300{ max-width: 1320px; width:100%; padding:0 1rem;}
  .max-1000{ max-width: 1000px;}

  
  .t-base {transition: all 0.3s ease;} /* 色や透明度の変化用 */
  .t-height { transition: max-height 0.4s ease; overflow: hidden;} /* 高さの変化用 */
  .t-fade { transition: opacity 0.3s ease;} /* フェード用 */

  a:hover{
    text-decoration: none;
  }




  .text-center {text-align: center;}
  .text-right {text-align: right;}

  .inline {display: inline-block;}
  .nowrap {white-space: nowrap;}
  .f-wrap {flex-wrap: wrap;}










  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;}
  .a-e {align-items: end;}

  .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: 1px;
  background-color: var(--color-primary); /* 好きな色に変更 */
}

  p {font-size: clamp(16px, 4vw, 20px); font-weight:var(--font-400);}

.h1-mv {font-size:clamp(28px,11vw,90px);
  display:inline-block;
  }

.h1 {font-size:clamp(28px,8vw,90px);
display:inline-block;
}

.h2 {
    font-size: clamp(40px,4vw, 60px);
    color: var(--color-blue);
  }








  .h3 {
    font-size: clamp(20px,3vw,26px);
  }

  .font-xl{font-size: clamp(36px,7vw, 80px);}
  .font-xs{font-size: clamp(8px,1.2vw, 12px);}

  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;}

   .h2{
    font-size:var(--font-40);
   }

  .g-table,
  .g-table tr,
  .g-table th,
  .g-table td,
  tbody {
    display: block;
    width: 100%;
    box-sizing: border-box; /* ← 追加 */
  }

  .g-table th {
    text-align: left;
    background: var(--color-primary-10); /* 見やすくする用に背景を薄色に */
    padding: 1rem;
    padding-bottom:0;
    border-bottom: none;
    border-top: none;
  }

  .g-table td {
    padding: 1rem;
    border-top: none;
  }

  .g-table tr {
    overflow: hidden;
  }

  /* グローバルの縦積みルール */
  .g-table td .inner-table,
  .g-table td .inner-table tbody,
  .g-table td .inner-table tr,
  .g-table td .inner-table th,
  .g-table td .inner-table td {
    display: table;
    width: auto;
    border: 1px solid var(--color-black-15);
  }

  .g-table td .inner-table tbody{
    width:100%;
  }

  .g-table td .inner-table tr {
    display: table-row;
  }
  .g-table td .inner-table th,
  .g-table td .inner-table td {
    display: table-cell;
  }

  .btn{
    padding:.7rem 2rem;
    width:90%;
  }

  .btn::after{
    width:16px;
    height:16px;
  }
}



@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;
  }

}
