@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;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ========== BASE STYLES ========== */

html, body {
  height: 100%;
  line-height: 1.7;
  background-color: #fff;
  color: var(--black);
  font-size: var(--font-16);
  font-family: "EB Garamond","Zen Old Mincho", serif;
  font-weight: 500;
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden; /* 横スクロールを防止 */
}

div {
  font-family: "EB Garamond","Zen Old Mincho", serif;
  font-size: var(--font-16);
  font-weight: 400;
}

.noto {
  font-family: "Noto Sans JP", sans-serif !important;
  font-weight: 400;
}

/* テーブル基本スタイル */




/* ボタンの基本スタイル */


/* 申込ボタンセクション */


/* 注意事項 */


/* スクロールバー（必要に応じて） */
/* ::-webkit-scrollbar {
  width: 8px;
} */

/* ::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 4px;
} */


/* ========== root ========== */


:root {
  --side-nav:200px;

  --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);

  --h-eng: clamp(16px, 2vw, 20px);

  --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: clamp(17px, 2vw, 24px);
  --font-22: clamp(17px, 2vw, 22px);
  --font-20: clamp(16px, 2vw, 20px);
  --font-18: clamp(14px, 2vw, 18px);
  --font-16: clamp(13px, 2vw, 16px);
  --font-14: 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;
  --blue:#4946cb;
  --pink:#EA6E92;
  --pink2:#fce9ef;
  --pink3:#eed9df;
  --pink-bg:#faf6f6;
  --black:#222;
  --gray: rgba(34, 34, 34, 0.6);
  --gray2: rgba(34, 34, 34, 0.1);

  --link:#EA6E92;

  --margin-xl:clamp(40px, 5vw, 220px);
  --margin-l:clamp(30px, 4.5vw, 200px);
  --margin-m:clamp(20px, 4vw, 150px);
  --margin-s:clamp(1.5em,3.8vw, 60px);
  --margin-xs:clamp(14px, 2vw, 30px);

  --margin-footer:clamp(70px, calc(70px + (50 * (100vw - 375px) / 1025)), 120px);

  --padding:clamp(1rem,1vw, 2rem);
    }

  .font-12 {font-size:var(--font-12);}
  .font-16 {font-size: var(--font-16);}
  .font-18 {font-size: var(--font-18) !important;}
  .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(--blue);}
  .secondary {color:var(--black2);}
  .black {color:var(--black);}
  .blue {color:var(--blue);}
  .gray {color:var(--gray);}
  .gray2 {color:var(--gray2);}
  .red {color:var(--red2);}


  .line-1-2 {line-height:1.2;}

  .margin-xl{ margin-top:var(--margin-xl);}
  .margin-l{ margin-top:var(--margin-l);}
  .margin-m{ margin-top:var(--margin-m);}
  .margin-s{ margin-top:var(--margin-s);}
  .margin-xs{ margin-top:var(--margin-xs)!important;}

  .padding{ padding:var(--padding)!important;}
  .padding-b{ padding-bottom:var(--margin-xl)!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-1200{ max-width: 1200px;}
  .max-1000{ max-width: 1000px;}
  .max-800{ max-width: 820px; width:100%; padding:0 1rem;}
  

  
  .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;}
  .text-left {text-align: left;}

  .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 solid var(--pink-bg);}
  .br-sp {display: none;}
  .br-pc {display: block;}


/* ------------------------------
  グローバル
--------------------------------*/

html {
  scroll-behavior: smooth;
}


  main {
    max-width: 100%;
    margin: 0 auto;
    padding: 0px;
  }


nav a {
    color: var(--black);
    text-decoration: none;
    display: block;
}

hr {
  border: none;
  height: 1px;
  background-color: var(--primary); /* 好きな色に変更 */
}

.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,2.5vw, 28px);
    color: var(--black);
    font-weight: 500;
  }








  .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(--link);
    text-decoration: none;
    transition: color 0.3s ease, background-color 0.3s ease,transform 0.3s ease, opacity 0.3s ease; /* 色と位置を滑らかに変化 */
  }



 @media screen and (max-width: 1200px) {


  .max-1000 {padding: 0 15px;}

 }


  @media screen and (max-width: 768px) {
    :root {
  --font-16: 14px;
  --font-14: 12px;
  }
  
  .flex-r-c {flex-direction: column;}

  html, body,p{
    line-height: 1.5;
  }

  .max-300{ max-width: 320px; width:100%; padding:0 1rem;}

    main{
  box-sizing: border-box;
  }

   .br-sp {display: block;}
   .br-pc {display: none;}


  .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;
  }

  .main-container,
  .wrapper {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .flex,
  .grid {
    display: block !important;
  }

}
