@charset "utf-8";

/* --------------------
  reset
-------------------- */
/* box-sizing: border-box;を設定 */
*,
*::before,
*::after {
  box-sizing: border-box;
}
 
/* フォントサイズの拡大を防ぐ */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}
 
/* デフォルトのマージンを削除、作成するCSSの制御を改善するため */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin: 0;
}
 
/* リストのスタイルを削除、これはデフォルトのスタイルが削除されることを示唆します */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}
 
/* bodyのデフォルトを設定 */
body {
  min-height: 100vh;
  line-height: 1.5;
}
 
/* 見出しやインタラクティブ要素のline-heightを設定 */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}
 
/* 見出しのテキスト折り返しをbalanceに設定 */
h1, h2,
h3, h4 {
  text-wrap: balance;
}
 
/* classを持たないa要素はデフォルトのスタイルを継承 */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}
 
/* 画像の扱いを簡単にする */
img,
picture {
  max-width: 100%;
  display: block;
}
 
/* inputやbuttonなどのfontは継承 */
input, button,
textarea, select {
  font: inherit;
}
 
/* rows属性のないtextareasが小さくならないようにする */
textarea:not([rows]) {
  min-height: 10em;
}
 
/* アンカーされている要素には余分なスクロールマージンが必要 */
:target {
  scroll-margin-block: 5ex;
}

/* --------------------
  base
-------------------- */
:root {
  font-size: 62.5%;
}
* {
  margin-top: 0;
}
body {
  background-color: #fff9eb;
  color:  #212121;
  font-family: 'Noto Sans JP',
                "Hiragino Sans",
                "Hiragino Kaku Gothic ProN",
                "Arial",
                "Yu Gothic",
                "Meiryo", 
                sans-serif;
  font-size: 1.4rem;
  line-height: 1.75;
}
h1, h2, h3, h4, h5, h6{
  line-height: 1.3em;
}
h1 {
  font-size: 4.5rem;
}
h2 {
  font-size: 3.2rem;
}
h3 {
  font-size: 2.4rem;
}
h4 {
  font-size: 2rem;
}
h5 {
  font-size: 1.6rem;
}
h6 {
  font-size: 1.6rem;
}
p {
  font-size: 1.6rem;
}
ul, ol {
  padding-inline-start: 0; /* list-styleを設定する場合は要調整 */
  list-style: none;
}
dd {
  margin-inline-start: 0;
}
img {
  max-width: 100%;
}

.pc_only {
  display: none;
}

@media all and (min-width: 768px) {
  body {
    font-size: 1.8rem;
  }

  .sp_only {
    display: none;
  }

  .pc_only {
    display: initial;
  }
}


/* --------------------
  kv
-------------------- */
.kv {
  background-color: #ffcc45;
  padding: 30px 5%;
}

.kv_cont {
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
}

.kv_cont img {
  display: inline;
}

.kv_cont2 {
  margin: 0 auto;
  width: fit-content;
  padding-top: 4rem;
}

.kv_desc {
  display: flex;
  align-items: center;
  gap: 1em;
  margin-bottom: 2rem;
}

.kv_desc dt {
  text-align: center;
  width: 6em;
  border: 1px solid #212121;
  border-radius: 999px;
  padding: .25em;
  margin-top: 1rem;
  flex-shrink: 0;
}

.kv_desc dd {
  line-height: 1.25;
  letter-spacing: 1px;
  font-weight: bold;
}

.kv_desc dd em {
  font-size: 1.6em;
  font-style: normal;
}

.kv_desc dd span {
  font-size: 0.8em;
}


@media all and (min-width: 768px) {
  .kv_cont {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .kv_desc dt {
    width: 10em;
  }

  .kv_desc dd em {
    font-size: 2em;
  }
}


/* --------------------
  main
-------------------- */
main {
  padding: 3rem 5%;
}

.cta {
  margin-bottom: 6rem;
}

.cta_btn {
  background-color: #ff5e00;
  border-radius: 999px;
  color: #fff;
  box-shadow: 5px 5px #fff;
  text-align: center;
  display: block;
  width: 95%;
  max-width: 700px;
  padding: .5em 2em;
  text-decoration: none;
  font-weight: bold;
  letter-spacing: 3px;
  font-size: 2.2rem;
  margin: 0 auto;
  transition: .3s;
}

.cta_btn:hover {
  filter: hue-rotate(20deg);
}

.h2_copy {
  width: fit-content;
  font-size: 2.2rem;
  text-align: center;
  margin: 0 auto 2rem;
  line-height: 1.9;
}

.h2_copy img {
  display: inline;
  height: 1.2em;
  object-fit: contain;
  position: relative;
  bottom: -4px;
}

.h2_copy span {
  font-size: 0.8em;
}

.h2_copy_img {
  margin: 0 auto 6rem;
  width: 30%;
  max-width: 160px;
}

@media all and (min-width: 768px) {
  .h2_copy span {
    font-size: 1em;
  }

  .h2_copy img {
    height: 1.8em;
    position: relative;
    bottom: -8px;
  }

}

section {
  max-width: 980px;
  margin: 0 auto 4rem;
}

.l_line {
  border-left: 3px dotted #ffcc45;
  padding: 2rem 5%;
}

.section_ttl {
  font-size: 4.6rem;
  margin-bottom: 2rem;
}

.section_ttl img {
  height: 1em;
  object-fit: contain;
}

.target_cont img {
  width: 40%;
  max-width: 160px;
  margin: 0 auto 2rem;
}

.target_list {
  font-weight: bold;
}

.target_list li::before {
  display: inline;
  content: "●";
  font-size: .5em;
  color: #ffcc45;
  padding-right: 1em;
}

.target_list li em {
  display: inline-block;
  position: relative;
}

.target_list li em::before {
  display: block;
  content: "";
  width: 100%;
  height: .5em;
  background-color: #e9dbff;
  position: absolute;
  bottom: .25em;
  left: 0;
  z-index: -1;
}

@media all and (min-width: 768px) {
  .target_cont {
    display: flex;
    gap: 4rem;
  }

  .target_cont img {
    margin: 0;
  }

  .target_list li {
    margin-bottom: 1.75em;
  }
}

.fee p strong {
  font-size: 2em;
  font-weight: bold;
}

.about .kv_desc dd em {
  font-size: 1.4em;
}

.agenda_list li span {
  color: #ff5e00;
  font-size: 1.5em;
  font-weight: bold;
  padding-right: 5px;
}