@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;
}

a:hover{
  text-decoration: underline;
}

/* 画像などの表示崩れ防止 */
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;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ========== BASE STYLES font========== */

html, body {
  height: 100%;
  line-height: 1.7;
  background-color: #fff;
  color: var(--black2);
  font-size: var(--font-16);
  font-family: "Roboto","IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden; /* 横スクロールを防止 */
}

div {
  font-family: "Roboto","IBM Plex Sans JP", sans-serif;
  font-size: var(--font-16);
  font-weight: 200;
}

p, h1, h2, h3, h4, h5, h6,a{
  font-family: "Roboto","IBM Plex Sans JP", sans-serif;
  line-height: 1.7;
}

/* font */

.ibm-plex-sans-jp-regular {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.roboto-400 {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}


section{
  margin-top:var(--margin-xl);
}

/* テーブル基本スタイル */




/* ボタンの基本スタイル */


/* 申込ボタンセクション */


/* 注意事項 */


/* スクロールバー（必要に応じて） */
/* ::-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: clamp(13px, 2vw, 14px);
  --font-12: 12px;

  --font-28: clamp(20px, 3.3vw, 28px);


  --font-500: 500;
  --font-700: 700;

  --primary:#EA6E92;
  --secondary:#fce9ef;

  --white:#fff;
  --white-50:rgba(255, 255, 255, 0.5);
  --white-80:rgba(255, 255, 255, 0.8);
  
  --red:#9F2A2A;
  --red2:#d44d4d;
  --black:#2b2b2c;
  --black2:#626267;
  --gray: #929697;
  --gray2: #dce1e2;
  --gray3: #f9f9fc;

  --link:#2b2b2c;

  --margin-xl:clamp(40px, 8vw, 140px);
  --margin-l:clamp(30px, 7.5vw, 70px);
  --margin-m:clamp(16px, 7vw, 50px);
  --margin-s:clamp(10px,6vw, 35px);
  --margin-xs:clamp(8px, 2vw, 20px);

  --margin-footer:clamp(70px, calc(70px + (50 * (100vw - 375px) / 1025)), 120px);
    }

  .font-12 {font-size:var(--font-12);}
  .font-14 {font-size:var(--font-14);}
  .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);}

  .primary {color:var(--black);}
  .secondary {color:var(--black2);}
  .gray {color:var(--gray);}
  .gray2 {color:var(--gray);}
  .red {color:var(--red2);}
  .white {color:var(--white) !important;}


  .line-1-2 {line-height:1.2;}

  .margin-xl{ margin-top:var(--margin-xl) !important;}
  .margin-l{ margin-top:var(--margin-l) !important;}
  .margin-m{ margin-top:var(--margin-m) !important;}
  .margin-s{ margin-top:var(--margin-s) !important;}
  .margin-xs{ margin-top:var(--margin-xs) !important;}
  .margin-footer{ margin:var(--margin-footer) auto 0 ;}
  .margin-auto{ margin-left:auto; margin-right:auto;}
  .no-margin{ margin:0;}

  .padding-side{ padding:0 clamp(1rem,1.5vw,2rem);}


  .max-1600{ max-width: 1600px;}
  .max-1300{ max-width: 1320px !important; width:100%; padding:0 20px;}
  .max-1000{ max-width: 1000px; width:100%; padding:0 20px;}

  
  .t-base {transition: all 0.3s ease;} /* 色や透明度の変化用 */
  .t-height { transition: max-height 0.4s ease; overflow: hidden;} /* 高さの変化用 */
  .t-fade { transition: opacity 0.3s ease;} /* フェード用 */



  .left {text-align: left;}
  .center {text-align: center;}
  .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(--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(--black);
    text-decoration: none;
    display: block;
}

hr {
  border: none;
  height: 1px;
  background-color: var(--primary); /* 好きな色に変更 */
}

  html,body,div,ul,li,p {
    font-size: clamp(13px, 4vw, 15px);
    font-weight:var(--font-400);
    /* line-height: clamp(24px, 3vw, 28px); */
  }

.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(20px,2vw, 24px);
    color: var(--black);
    font-weight: 500;
    letter-spacing: 3px;
  }

.h3 {
    font-size: clamp(18px,3vw,20px);
    color: var(--black);
    font-weight: 500;
    letter-spacing: 3px;
  }

.h4 {
    font-size: clamp(13px,3vw,15px);
    font-weight: 400;
  }



.en{
  letter-spacing: normal;
  line-height: clamp(20px, 3vw, 28px);
}






 

  .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(--colorfont-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(--link);
    text-decoration: none;
    transition: color 0.3s ease, background-color 0.3s ease,transform 0.3s ease, opacity 0.3s ease; /* 色と位置を滑らかに変化 */
  }


  /* ---------------------------btn */

.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;

  max-width: 420px;
  width:90%;
  
  padding-top:4px;
  padding-bottom:4px;
  margin:var(--margin-l) auto 0;

  border: 1px solid var(--black);
  background: var(--white);
  color: var(--black);
  text-decoration: none;

  transition: background 0.3s ease, color 0.3s ease;
}

/* 中央テキスト */
.btn .txt {
  font-size: var(--font-14);
}

/* 右端の矢印 */
.btn .arrow {
  position: absolute;
  right: 20px;
  font-size: 18px;
  transition: transform 0.3s ease;
}

/* hover時 */
.btn:hover {
  background: var(--black);
  color: var(--white);
}

/* 矢印スライド */
.btn:hover .arrow {
  transform: translateX(10px);
}




 @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(--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(--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;
  }

  .flex,
  .grid {
    display: block !important;
  }

}
